过去一周我一直试图制作一个有效的GUI。我尝试了网格袋布局,现在是以下内容。然而,我无法得到我需要工作的所有东西。请使用以下代码
public class testGUI extends JPanel {
protected static double [] value;
JPanel jp = new JPanel();
JTextArea jt = new JTextArea(10,40);
public testGUI()
{
JButton btn1 = new JButton("SportCar");
JButton btn2 = new JButton("Van");
btn1.addActionListener(new ButtonListener());
btn2.addActionListener(new ButtonListener());
jp.add(jt);
add(btn1);
add(btn2);
}
public static void main(String[] args) {
for (int i=0; i<args.length;i++)
{ value[i]= Double.parseDouble(args[i]);
}
JFrame frame = new JFrame();
frame.getContentPane().add(new testGUI());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}
}
class ButtonListener implements ActionListener {
ButtonListener() {}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("SportCar"))
{ Vehicle car1 = new SportCar(value[0],value[1],value[2]);
System.out.println("You have made a new Sportcar");
}
else if(e.getActionCommand().equals("Van"))
{ Vehicle car1= new Van(value[0],value[1],value[2],value[3]);
System.out.println("You have made a new Van");
}
}
}
我已经创建了监听器但是我不能做的两件事是在GUI中创建一个显示实例变量的文本区域。此外,SportCar和Van构造函数需要3个和4个用户输入的数字,这也是我做不到的。请帮助我长时间停留在GUI上。谢谢
答案 0 :(得分:1)
首先。你应该初始化你的数组。那是在你的循环之前完成的:
value = new double[args.length];
如果你想在另一个类中访问它而不是你声明它的那个类,你应该调用你的静态数组testGui.value[i]
。
如果您必须在许多不同的类中访问此数据结构,您可能还会考虑使用List并使用Singleton模式。