2017-04-11 77 views
0

我有3个TextField。一个是totalTF,另一个是tenderTF,最后一个是changeTF。我想知道如何去取得总金额中的总价,并允许用户输入他们给出纳员的金额,然后一旦选择了付款按钮就可以解决变更,并显示在变更中。这是我的代码到目前为止。我试图做数学然后设置changeTF。任何帮助将不胜感激谢谢。从JTextField计算更改

JButton payButton = new JButton("Pay"); 
     payButton.setBounds(970, 569, 209, 51); 
     contentPane.add(payButton); 

     // Calculate Change 
     changeTF.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent e) 
      { 
       if(e.getSource() == payButton) 
       { 
        double change = Double.valueOf(totalTF.getText()) - Double.valueOf(tenderedTF.getText()); 
        changeTF.setText(String.valueOf(change)); 
       } 
      } 
     }); 

     tenderedTF.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent e) 
      { 
       if(e.getSource() == payButton) 
       { 
        double change = Double.valueOf(totalTF.getText()) - Double.valueOf(tenderedTF.getText()); 
        changeTF.setText(String.valueOf(change)); 
       } 
      } 
     }); 
+1

'changeTF'和'tenderedTF'永远不会收到'payButton'触发的动作事件,它们只会接收到您自己的代码所触发的动作事件。尝试添加一个'ActionListener'到按钮。 – Berger

+1

您想要在点击付款按钮时进行计算,是否正确?然后你需要一个按钮上的动作侦听器,而不是在字段上。 – lucasvw

+0

辉煌!它的工作,只有它不会将它设置在changeTF到正确的小数位。我应该如何克服这一点。谢谢 – Movillian

回答

0

你要当用户点击payButton执行代码,所以我觉得你应该添加监听器上payButton:

payButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     double change = Double.valueOf(totalTF.getText()) - Double.valueOf(tenderedTF.getText()); 
     changeTF.setText(String.valueOf(change)); 
    } 
}); 

我想你加入到文本框不能工作,因为听众e.getSource()返回发起事件的文本字段,它不能是payButton。

编辑:全新改版,包括张贴在评论的问题:

payButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     double change = Double.valueOf(tenderedTF.getText()) - Double.valueOf(totalTF.getText()); 
     if(change<0){ 
      changeTF.setText(String.valueOf(-change) + " missing"); 
     } else { 
      changeTF.setText(String.valueOf(change)); 
     } 
    } 
}); 

老实说,我没有编译和测试这个代码,但我希望它让你的想法:检查“改变”,并提供根据不同的消息到正面或负面的价值。

这是一个非常基本的方法,您可能想要考虑更复杂的事情。

请注意我对改变的值进行了计算,因为这个新的听起来更符合您根据字段名称给出的描述。请仔细检查。

希望它有帮助。 祝你好运。

+0

谢谢@Dario – Movillian

+0

@Movillian,别忘了“接受”答案,让人们知道你的问题已经解决。 – camickr

+0

它已被接受,谢谢 – Movillian