我想制作一个计算器。我有一个数组来存储我的价值。我有两个文本字段(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]));
}
}
});
答案 0 :(得分:1)
您的Number(int nbr)
方法将数组单元格设置为其参数值。在两个TextField的EventHandler中,您使用了硬编码Number(1)
和Number(2)
。不管怎样,无论text1
和text2
的行为内容是什么,您都会添加 1 和 2 。