如何从文本字段

时间:2015-11-29 22:24:24

标签: java javafx

我想制作一个计算器。我有一个数组来存储我的价值。我有两个文本字段(text1和text2),其中text1引用数组[0]而text2引用数组[1] ..当我在text1中插入数字1并在text2中插入数字2时,我得到3作为输出但是当我在text1中插入数字12,然后在text2中插入数字22,然后我仍然得到输出3,这意味着计算器加1 + 2而不是12 + 22 ..如何在text1和text2中获取整个值来添加它们一起?我的意思是我希望输出应该是12 + 22 = 34 ...谢谢

堆栈类

    int[] array = new int[4];
public enum Operation {
        PLUS
    }

    public void CalculateSign(Operation op) {
        switch (op) {
        case PLUS:
            result = (array[0] + array[1]);
            //array[0] = result;
            System.out.println(array[0]);
            System.out.println(array[1]);
            break;
            }

public void Number(int nbr) {

        array[0] = nbr;
    }

计算器类

TextField text1 = new TextField();
TextField text2 = new TextField();

plusButton.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

                if (event.getSource() == plusButton) {
                    stack.CalculateSign(Stack.Operation.PLUS);
                    text1.setText(Integer.toString(stack.result));

                }
            }

        });

one.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

                if (event.getSource() == one) {

                    stack.Number(1);                                                                        text1.setText(text1.getText()+String.valueOf(stack.array[0]));

                }
            }

        });

        two.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

                if (event.getSource() == two) {
                    stack.Number(2);
                    text1.setText(text1.getText()+String.valueOf(stack.array[0]));

                }
            }

        });

1 个答案:

答案 0 :(得分:1)

您的Number(int nbr)方法将数组单元格设置为其参数值。在两个TextField的EventHandler中,您使用了硬编码Number(1)Number(2)。不管怎样,无论text1text2的行为内容是什么,您都会添加 1 2