2017-04-11 60 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