Java计算器将数字添加到文本字段

时间:2013-05-10 14:30:58

标签: java button textfield calculator

我正在制作一个计算器来测试我在java中的技能。如何在jTextfield中显示数字,直到我按下一个按钮来计算数字;我希望每个数字都显示在文本字段中。例如,如果我按1和零,我希望文本字段有10。

int num;
JTextField in = new JTextField(20); // input field where numbers will up;

public void actionPerformed(ActionEvent e) {
    if (e.getSource() == bouttons.get(0)) {
        num = 0;
        in.setText("" + num);
    }
    if (e.getSource() == bouttons.get(1)) {
        int num = 1;
        in.setText("" + num);
    }
}

The screenshot

4 个答案:

答案 0 :(得分:2)

为了节省很多if-else的麻烦,你可以创建一个JButton的数组并循环遍历它们。
所以按钮0将在索引0处。

然后,您可以将文字附加到JTextField

String alreadyDisplayed = in.getText(); //get the existing text
String toDisplay = alreadyDisplayed + Integer.toString(loopCounter);// append the position to the text
in.setText(toDisplay);// display the text  

您可以按如下方式循环:

for(int i=0;i<jbuttonArray.length;i++){
    if(e.getSource()==jbuttonArray[i]){
        //insert above code here;
    }
}

以下是Oracle关于此主题的教程:http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html

答案 1 :(得分:2)

您希望将文本附加到已存在的内容中 - 尝试类似

的内容

in.setText(in.getText() + num)代替in.setText("" + num)

答案 2 :(得分:1)

你应该附加in.getText()而不是空字符串

int num ;
JTextField in = new JTextField(20); // input field where numbers will up;
public void actionPerformed(ActionEvent e) {



    if (e.getSource() == bouttons.get(0)) {

        num =0;

        in.setText(in.getText() + num);

    }

    if (e.getSource() == bouttons.get(1)) {

        int num = 1;
        in.setText(in.getText() + num);

    }

}

答案 3 :(得分:0)

您可以将ActionListener添加到数字按钮。例如:如果您有一个JButton b1,它向文本字段中添加了1 ...您可以这样使用它:

public void actionPerformed(ActionEvent e) {
    /* I'm using equals method because I feel that it is more reliable than '==' operator
     * but you can also use '=='
     */
    if(e.getSource().equals(b1){
        in.setText(in.getText + "1");
    }
}

类似地,您可以为1,2,3 ...添加其他按钮,并像这样实现它。

希望这对您有帮助。...:-):-)