【发布时间】:2013-08-20 02:13:30
【问题描述】:
我一直在尝试创建 JFrame 计算器,但收到错误 java.lang.nullpointer.exception。它说我在我说的那一行有问题:
GuiCalc go = new GuiCalc();
所有代码如下:
package home.personalprojects.jordan;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GuiCalc extends JFrame
{
private JButton calculate;
private JTextField num1field, num2field;
private JComboBox operationbox;
private JLabel label1, label2, label3;
private String[] operationposs = {"+", "-", "*", "/"};
String operation;
int num1, num2, answer;
public GuiCalc(){
super("Calculator");
setLayout(new FlowLayout());
operationbox = new JComboBox(operationposs);
calculate = new JButton("Calculate");
calculate.setToolTipText("Enter Two Numbers And Then Select An Operation To Find An Answer");
label1 = new JLabel("Number 1: ");
num1field = new JTextField("", 10);
label2 = new JLabel("Number 2: ");
num2field = new JTextField("", 10);
operationbox.addItemListener(
new ItemListener(){
public void itemStateChanged(ItemEvent event){
if(event.getStateChange() == ItemEvent.SELECTED){
int temp;
temp = operationbox.getSelectedIndex();
switch(temp){
case 0:
answer = num1 + num2;
case 1:
answer = num1 - num2;
case 2:
answer = num1 * num2;
case 3:
answer = num1 / num2;
}
}
}
});
calculate.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
JOptionPane.showMessageDialog(null, String.format("The Answer: " + answer, event.getActionCommand()));
}
}
);
add(label1);
add(num1field);
add(label2);
add(operationbox);
add(label3);
add(num2field);
add(calculate);
}
public static void main(String[] args)
{
GuiCalc go = new GuiCalc();
go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
go.setSize(500,500);
go.setVisible(true);
}
}
【问题讨论】:
-
请粘贴整个堆栈跟踪,以及对应的行号。
-
它应该在方法 GuiCalc() 中显示附加行号
标签: java swing nullpointerexception jframe calculator