如何根据GUI中的用户输入更改Java中的变量值?

时间:2014-12-05 18:29:40

标签: java swing user-interface

我目前正在为一个农场设计GUI。该农场由三个演员组成(杂草,豆类植物和农民)。在运行Farm GUI时,它显示了农民种植和从农田中移除杂草的动作。我已经确定了参与者的概率,以确保该领域不会过多。

以下是在Simulator类中声明的。概率如下:

    public final double FARMER_CREATION_PROB = 0.01;
    public final double BEANPLANT_CREATION_PROB = 0.01;
    public final double WEED_CREATION_PROB = 0.01;

我现在正在设计一个单独的GUI,它允许根据用户输入的内容更改上面的变量(和更多)。例如,我有一个JTextField用于杂草创建概率,如果用户输入3,那么我想要FARMER_CREATION_PROB = 3;。

这是我为三个概率创建我的JTextFields(在FarmGUI类中声明):

 weedField = new JTextField ();
 beanField = new JTextField ();
 farmerField = new JTextField();

由于我对Java的理解有限,我尝试了以下内容:

public final double WEED_CREATION_PROB = weedField.getText();

然而,它声明“找不到符号”。我很确定我的方法不是正确的方法。

问题: 如何从GUI获取用户输入并确保将创建概率更改为用户输入的内容?

修改

首先,感谢您的反馈。

这是我设计的GUI(非常基本的)

[IMG] http://i57.tinypic.com/2j63668.png[/IMG]

GUI的逻辑:Gui的全部目的是让用户能够为每个字段设置值。单击上面GUI中的“运行模拟”后,另一个运行模拟的GUI将显示在单独的框架上。

编辑2

我尝试了以下内容(基于@ zaibi099建议),只是想知道它是否正确。

在模拟器类中:

    public final double WEED_CREATION_PROB;

在Farm GUI类中:

        run.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent event) {
           double s = Double.parseDouble(weedField.getText()); 

1 个答案:

答案 0 :(得分:0)

你犯的错误:

  1. 这两者都不兼容。 weedField.getText();返回字符串,您将其分配给double
  2. 您正在尝试将值分配给final(常量变量),因此它不允许您这样做。可以首次将值分配给值。
  3. 解决方案: public final double FARMER_CREATION_PROB;

    以及您要分配的位置:

    FARMER_CREATION_PROB = weedField.getText();  // don't forget to convert the text field into double