вот мои классы, так как текстовая область получает только последний объект в массиве.Мне нужно JTextArea для отображения всех объектов в массиве.Я исправил проблему с массивом, однако не могу понять, как заставить мою кнопку получить массив.Я хотел бы реализовать actionlistener в моем классе драйверов, но я получаю статические ошибки, и java хотел бы, чтобы я сделал вещи окончательно, но это никогда не решает проблему.Я обновил код, чтобы сообщить о моей проблеме.
public class drink
{
private String name;
private String carb;
private String desc;
public drink(String drinkName, String carbDetail, String descDetail)
{
name = drinkName;
carb = carbDetail;
desc = descDetail;
}
public String toString()
{
return(name + carb + desc);
}
}
public class drinkViewer
{
private String string;
private String name;
private drink[] theDrinks;
private int drinkCount=0;
public drinkViewer(String Name)
{
name = Name;
theDrinks = new drink[5];
}
public void addDrink(String drinkName, String carbDetail, String descDetail)
{
theDrinks[drinkCount] = new drink(drinkName, carbDetail, descDetail);
drinkCount++;
}
public void getdrinkArray()
{
for(int i=0;i<drinkCount;i++)
{
string += (theDrinks[i].toString()+"\n");
//System.out.println(string);
}
}
}//end
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.JTextArea;
public class driver
{
private JTextArea area;
public static void main(String args[])
{
drinkViewer newViewer = new drinkViewer("test");
newViewer.addDrink("orange", "fruit", "noncarb");
newViewer.addDrink("beer", "5%","carb");
newViewer.loop();
//JTextArea area = new JTextArea(newViewer.getString());
JFrame frame = new JFrame("Drink Descriptions");
frame.setVisible(true);
frame.setSize(400,400);
JButton button = new JButton("Button");
JPanel panel = new JPanel();
frame.add(panel,BorderLayout.NORTH);
panel.add(button,BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.add(area,BorderLayout.SOUTH);
class ButtonListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
JTextArea area = new JTextArea(newViewer.getdrinkArray());
}
}
listener = new ButtonListener();
}
}//end