【问题标题】:Gui in java with textarea for Instance variablesjava中的gui,带有用于实例变量的textarea
【发布时间】:2016-03-24 10:37:15
【问题描述】:

在过去的一周里,我一直在尝试制作一个可以工作的 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 上停留太久了。谢谢

【问题讨论】:

  • 到底是什么不起作用?它不会给您期望的结果吗?你得到一个编译时错误吗?您是否收到运行时错误?
  • 通过实例化它。在静态和非静态方法中都使用它有点狡猾,但不应该阻止工作。
  • 您可以将数据结构(数组;尽管我建议使用列表)包装在单例模式中。它比使用在整个代码中使用的静态字段更优雅
  • 没有冲突。如果您在它的“父”类之外使用它,只需将您的静态字段称为 testGui.value[i] 。否则 jvm 将在您的 ButtonListner 中搜索 vor value[]。而且没有这样的字段,所以它给出了一个错误。
  • 如果您想显示文本(如输出),您可以使用 textArea 或 textfield 并将其设置为不可编辑“jt.setEditable(false)”。您还可以使用 JLabel 来显示您的输出

标签: java oop user-interface


【解决方案1】:

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

value = new double[args.length];

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多