结合两个不同按钮的输出

时间:2015-04-26 08:24:33

标签: java

我正在为自动售货机编写代码,并且有一个字母和数字的按钮布局。

现在,如果我按下“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);

2 个答案:

答案 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,然后保存其状态,现在您始终以空字符串开头。

反对这种方法:如果单击一个按钮两次,文本将出现两次,你必须实现一个例程来重置选择