gui在java中用textarea作为实例变量

时间:2016-03-24 10:37:16

标签: java oop user-interface

过去一周我一直试图制作一个有效的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上。谢谢

1 个答案:

答案 0 :(得分:1)

首先。你应该初始化你的数组。那是在你的循环之前完成的:

value = new double[args.length];

如果你想在另一个类中访问它而不是你声明它的那个类,你应该调用你的静态数组testGui.value[i]。 如果您必须在许多不同的类中访问此数据结构,您可能还会考虑使用List并使用Singleton模式。