我必须从单独的JTextfields计算两个输入,在组合框中选择一个运算符并根据所选的运算符计算结果。但是,我得到0作为我的答案。如何在不获得0的情况下计算结果?
private void jButton1_actionPerformed(ActionEvent e) {
int x = Integer.parseInt(jTextField1.getText());
int y = Integer.parseInt(jTextField2.getText());
String Result = "0";
jLabel4.setText(Result);
int total = Integer.parseInt(Result);
if(Operator.equals("+")) {
total = x + y;
}
else if(Operator.equals("-")) {
total = x - y;
}
else if(Operator.equals("*")) {
total = x * y;
}
else if(Operator.equals("/")) {
total = x / y;
}
}
答案 0 :(得分:3)
那是因为你在计算结果后没有更新jLabel4。
在if
之后,你应该添加另一个jLabel4.setText(Integer.toString(result));
答案 1 :(得分:2)
从此代码中,jLabel4
是结果标签。
您正在做的是首先将字符串结果分配给“0”,然后将此设置为“(0”)作为文本然后进行计算。
您应该先做计算,然后设置结果。
private void jButton1_actionPerformed(ActionEvent e) {
int x = Integer.parseInt(jTextField1.getText());
int y = Integer.parseInt(jTextField2.getText());
int total = 0;
if(Operator.equals("+")) {
total = x + y;
}
else if(Operator.equals("-")) {
total = x - y;
}
else if(Operator.equals("*")) {
total = x * y;
}
else if(Operator.equals("/")) {
total = x / y;
}
jLabel4.setText(String.valueOf(total));
}
答案 2 :(得分:1)
您应该将方法分为两部分:一部分负责计算结果,另一部分负责显示。除此之外你可能应该使用double,否则除法会给你意想不到的结果,即0(例如在1/2的情况下)。
private void jButton1_actionPerformed(ActionEvent e) {
int x = Integer.parseInt(jTextField1.getText());
int y = Integer.parseInt(jTextField2.getText());
double result = calculateResult(operator, x, y)
jLabel4.setText(String.valueOf(result));
}
private double calculateResult(String operator, int x, int y) {
if(operator.equals("+")) {
total = x + y;
}
else if(operator.equals("-")) {
total = x - y;
}
else if(operator.equals("*")) {
total = x * y;
}
else if(operator.equals("/")) {
total = x / y;
}
return total;
}