按钮点击更新jttextfield并用新输入的值计算?

时间:2015-12-14 15:17:38

标签: java jtextfield

在我的Java GUI中有4个JTextField。目标是输入3个文本字段的默认值(例如下面的代码中的.8)并计算该值并将计算显示在第4个文本字段中。然后,用户应该能够更改JTextField中数字的值,然后再次按下计算按钮以获取新值以重新计算并显示它们。

问题:当编辑JTextfields并按下计算按钮时,它不会使用新数字计算,而是使用旧的初始值计算。

JTextField S = new JTextField();
S.setText(".8");
String Stext = S.getText();
final double Snumber = Double.parseDouble(Stext);
.... *same setup for Rnumber*
.... *same setup for Anumber*
....
JButton btnCalculate_1 = new JButton("Calculate");
btnCalculate_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) 
{
  int valuec = (int) Math.ceil(((Snumber*Rnumber)/Anumber)/8);
  String stringValuec = String.valueOf(valuec);
NewTextField.setText(stringCalc);
}

我查了几篇帖子并尝试过:

How Do I Get User Input from a TextField and Convert it to a Double?

Using JTextField for user input

基础知识。但是,每当尝试将其调整到我的代码时,eclipse都会返回各种错误。

2 个答案:

答案 0 :(得分:2)

使用S.getText() actionPerformed()方法。 在按下按钮时调用actionperformed块内的代码,其外部的代码不受影响。 因此,一旦运行代码并将值插入文本字段,它就会分配一个值,但是当您更改值并按下计算按钮时它不会改变相同的值

答案 1 :(得分:0)

尝试使用此代码。

class a extends JFrame implements ActionListener
{
JTextField t1,t2,t3;
a()
{

    setLayout(null);
    t1 = new JTextField();
    t2 = new JTextField();
    t3 = new JTextField();
    JButton B1 = new JButton("Calculate");

    t3.setEditable(false);

    t1.setBounds(10,10,100,30);
    t2.setBounds(10,40,100,30);
    t3.setBounds(10,70,100,30);

    B1.setBounds(50, 110, 80, 50);

    add(t1);
    add(t2);
    add(t3);
    add(B1);

    B1.addActionListener(this);

    setSize(200,200);
    setVisible(true);
}
public static void main(String args[])
    {
        new a();
    }
@Override
public void actionPerformed(ActionEvent e) 
{
    double Snumber = Double.parseDouble(t1.getText());
    double Rnumber = Double.parseDouble(t2.getText());
    double Anumber = Snumber+Rnumber;
    t3.setText(String.valueOf(Anumber));

}

}