我正在为自动售货机编写代码,并且有一个字母和数字的按钮布局。
现在,如果我按下“a”按钮,它会在框中打印“a”,但是如果我按下“1”按钮,它将替换已经在框中的“a”并打印“1” “取而代之。如何使输出说“a1”而不是简单的一个?
String buttonText = "";
for(int i = 0; i < 12; i++) {
if(event.getSource() == button[i]) {
JButton clickedButton = (JButton) event.getSource();
String buttonText1 = clickedButton.getText();
buttonText += buttonText1;
itemSelection.setText(buttonText);
答案 0 :(得分:2)
此时您无法点击多个按钮。 而不是你的代码:
String buttonText = "";
for(int i = 0; i < 12; i++) {
if(event.getSource() == button[i]) {
JButton clickedButton = (JButton) event.getSource();
String buttonText1 = clickedButton.getText();
buttonText += buttonText1;
itemSelection.setText(buttonText);
试试这个:
String buttonText = ((JButton) event.getSource()).getText();
itemSelection.setText(itemSelection.getText() + buttonText);
编辑:
要限制输入,请尝试DocumentFilter
。
答案 1 :(得分:1)
使用String button1Choice,button2Choice等变量。更新它们onclick并更新您的文本域
textField.settext(button1Choice + button2Choice)
编辑:您还可以在clickHandler之外定义buttonText,然后保存其状态,现在您始终以空字符串开头。
反对这种方法:如果单击一个按钮两次,文本将出现两次,你必须实现一个例程来重置选择