Java MVC样式计算器的if语句有问题 [英] Java MVC style calculator is having an issue with an if statement
问题描述
我必须在Java中使用类之间的MVC样式格式制作计算器GUI样式,我试图通过使用true/false布尔值来区分它们输入的第一个数字和第二个数字,因此,如果为true,则number是第一个,如果为false,则它应该认识到它是一个新数字,并且他们已经按了加号或减号.我使用一个公共布尔方法,该方法返回布尔值,但是由于某些原因,我在Calculations类中具有的if语句不起作用.这是代码
I have to make a calculator GUI style in java with MVC style formatting between classes, I'm trying to differentiate between the first number they enter and the second one by having a true/false boolean, so if it's true then the number is the first one, and if its false then it should recognize that it is a new number, and they have already pressed either plus or minus. I use a public boolean method that returns the boolean but the if statement I have in the Calculations class isn't working for some reason. Here is the code
Calc类
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calc extends JFrame implements ActionListener {
private JTextField numDisplay = new JTextField(10);
private JButton plusButton = new JButton("+");
private JButton minusButton = new JButton("-");
private JButton clearButton = new JButton("Clear");
private JButton equalsButton = new JButton("=");
private JButton zeroButton = new JButton("0");
private JButton oneButton = new JButton("1");
private JButton twoButton = new JButton("2");
private JButton threeButton = new JButton("3");
private JButton fourButton = new JButton("4");
private JButton fiveButton = new JButton("5");
private JButton sixButton = new JButton("6");
private JButton sevenButton = new JButton("7");
private JButton eightButton = new JButton("8");
private JButton nineButton = new JButton("9");
private String number = "";
private boolean trueFalse; //plus or minus
private boolean onOff = false; //false = 1st int, true = 2nd int
private int total;
Calc(){
JPanel calcPanel = new JPanel();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 600);
calcPanel.add(numDisplay);
calcPanel.add(plusButton);
calcPanel.add(minusButton);
calcPanel.add(clearButton);
calcPanel.add(equalsButton);
calcPanel.add(zeroButton);
calcPanel.add(oneButton);
calcPanel.add(twoButton);
calcPanel.add(threeButton);
calcPanel.add(fourButton);
calcPanel.add(fiveButton);
calcPanel.add(sixButton);
calcPanel.add(sevenButton);
calcPanel.add(eightButton);
calcPanel.add(nineButton);
this.add(calcPanel);
plusButton.addActionListener(this);
minusButton.addActionListener(this);
clearButton.addActionListener(this);
equalsButton.addActionListener(this);
zeroButton.addActionListener(this);
oneButton.addActionListener(this);
twoButton.addActionListener(this);
threeButton.addActionListener(this);
fourButton.addActionListener(this);
fiveButton.addActionListener(this);
sixButton.addActionListener(this);
sevenButton.addActionListener(this);
eightButton.addActionListener(this);
nineButton.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
if (event.getSource() instanceof JButton){
JButton clickedButton = (JButton) event.getSource();
String buttonText = clickedButton.getText();
number = number + buttonText;
if (clickedButton == clearButton){
number = "";
onOff = false;
}
if (clickedButton == plusButton){
trueFalse = true;
onOff = true;
}
if (clickedButton == minusButton){
trueFalse = false;
onOff = true;
number = "";
}
}
}
public int getNumber(){
return Integer.parseInt(number);
}
public boolean trueFalse(){
return trueFalse;
}
public boolean onOff(){
return onOff;
}
public int total(){
return total;
}
}
这是我遇到问题的Calculations类.
And here is the Calculations class where I'm having the issue.
public class Calculations
{
private Calc theView;
private CalculationModel theModel;
private boolean onOff = theView.onOff();
private boolean trueFalse = theView.trueFalse();
public Calculations(Calc theView, CalculationModel theModel)
{
this.theView = theView;
this.theModel = theModel;
}
if(trueFalse == true) //this if statement isn't working
{
private int number1 = theView.getNumber();
}
}
推荐答案
您需要将number1
声明为类成员变量
You need to declare number1
as a class member variable
private int number1;
private
关键字只能在类块中使用.另外,替换
The private
keyword can only be used in the class block. Also, replace
if (trueFalse == true)
{
private int number1 = theView.getNumber();
}
使用
if (trueFalse)
{
number1 = theView.getNumber();
}
并将其放置在方法中.
and place it in a method.
请参阅:声明成员变量
这篇关于Java MVC样式计算器的if语句有问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!