2017-03-05 3 views
-1

を繰り返すように得ることができない、私は11を入力したい場合は、それだけで、それを仕事テキストフィールドに1が表示されませんと言うことができます。別の数字ボタンを押して、それをテキストフィールドの1または任意の数字に追加することはできません。私は操作ボタンあなたがのsetText()メソッドを使用することはできません電卓:私は自分自身を追加する私の数字ボタンを得ることができない私の番号がJTextFieldの中

private ActionListener NumberTapped = new ActionListener() { 

     @Override 
     public void actionPerformed (ActionEvent e) { 
     // JOptionPane.showMessageDialog(null, "Number tapped"); 

      JButton src = (JButton) e.getSource(); 

      String numberSelected = ""; 
      if (src.equals(btn0)) 
       numberSelected = "0"; 
      else if (src.equals(btn1)) 
       numberSelected = "1"; 
      else if (src.equals(btn2)) 
       numberSelected = "2"; 
      else if (src.equals(btn3)) 
       numberSelected = "3"; 
      else if (src.equals(btn4)) 
       numberSelected = "4"; 
      else if (src.equals(btn5)) 
       numberSelected = "5"; 
      else if (src.equals(btn6)) 
       numberSelected = "6"; 
      else if (src.equals(btn7)) 
       numberSelected = "7"; 
      else if (src.equals(btn8)) 
       numberSelected = "8"; 
      else if (src.equals(btn9)) 
       numberSelected = "9"; 
      else if (src.equals(btnA)) 
       numberSelected = "1010"; 
      else if (src.equals(btnB)) 
       numberSelected = "1011"; 
      else if (src.equals(btnC)) 
       numberSelected = "1100"; 
      else if (src.equals(btnD)) 
       numberSelected = "1101"; 
      else if (src.equals(btnE)) 
       numberSelected = "1110"; 
      else if (src.equals(btnF)) 
       numberSelected = "1111"; 




      if (operator.equals("") && operand1.equals("")) { 
       operand1 = operand1 + numberSelected; 
       outputField.setText(operand1); 
      } else if (!operator.equals("")) {//else if the operator has been set, then append the number onto operand2 
       operand2 = operand2 + numberSelected; 
       outputField.setText(operand2); 
      } 
     }  

    }; 
+1

1)、[MCVE]または[ショート、自己完結、正しい例](http://www.sscce.org/)を投稿してください。 2)この作業[電卓の例](http://stackoverflow.com/a/7441804/418556)も参照してください。 'ScriptEngine'を使ってテキストフィールドの式を評価します。 –

+0

「演算子」、「演算子1」、「演算子2」とは何ですか? 'operator'が空だが' operator1'はそうではないのでしょうか? –

答えて

0
outputField.setText(operand1); 

を押すまで、それだけで停止して待ちます。それは単に既存のテキストを新しいテキストに置き換えます。

代わりに、テキストをテキストフィールドに追加する必要があります。これを行う簡単な方法は、JTextFieldのreplaceSelection(...)メソッドを使用することです。

を参照してください。ActionreplaceSelection(...)の方法を再利用してコードを単純化する簡単な例については、How to add strings to textPane instead of setting them?をご覧ください。早いほど良いのヘルプについて

関連する問題