我已经创建了一个基于Java GUI的小型计算器应用程序,但它提出了一个问题,即当我启动时它没有在屏幕上显示任何内容,它会立即自动存在。什么地方出了错?这是我的SmallCalcApp的java类的代码: .................................................. .................................................. .................................................. ....................
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class SmallCalcApp implements ActionListener{
JFrame frame;
JLabel firstOperand, secondOperand, answer;
JTextField op1, op2, ans;
JButton plus, mul;
public SmallCalcApp(){
initGUI();
}
public void initGUI(){
frame = new JFrame();
Container con = frame.getContentPane();
con.setLayout(new FlowLayout());
plus = new JButton("+");
mul = new JButton("*");
con.add(plus);
con.add(mul);
plus.addActionListener(this);
mul.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event){
String oper, result;
int num1, num2, res;
if(event.getSource() == plus){
oper = op1.getText();
num1 = Integer.parseInt(oper);
oper = op2.getText();
num2 = Integer.parseInt(oper);
res = num1 + num2;
result = res + "";
ans.setText(result);
}
if(event.getSource() == mul){
oper = op1.getText();
num1 = Integer.parseInt(oper);
oper = op2.getText();
num2 = Integer.parseInt(oper);
res = num1 * num2;
result = res + "";
ans.setText(result);
}
}
public static void main(String args[]){
SmallCalcApp sc;
}
}
答案 0 :(得分:2)
那是因为你没有创建SmallCalcApp
的任何实例。
替换:
SmallCalcApp sc;
到SmallCalcApp sc = new SmallCalcApp();
为了做到这一点。
此外,所有Swing应用程序必须在自己的线程上运行。有关详情,请阅读this.
所以,你的主要应该是:
public static void main(String args[]) {
SwingUtilities.invokeLater(() -> {
new SmallCalcApp();
});
}