我无法将我的数字按钮添加到自己,让我们说如果我想输入11,它将无法正常工作它只在文本字段中显示1。它不会让我按下另一个数字按钮并将其附加到文本字段中的1或任何数字。它只是停下来等待我按下操作按钮
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);
}
}
};
答案 0 :(得分:0)
outputField.setText(operand1);
您无法使用setText()方法。这只会用新文本替换现有文本。
相反,你需要"追加"文本到文本字段。一种简单的方法是使用JTextField的replaceSelection(...)
方法。
请查看:How to add strings to textPane instead of setting them?,这是一个简单的示例,您可以通过重复使用通用Action
和replaceSelection(...)
方法来简化代码。