0
我正在尝试制作GPA计算器应用程序。我已经掌握了所有必要的代码。它只是当我试图做一个GUI时,我得到一个我根本不理解的错误代码。JOptionPane错误Java
代码:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Caculator{
public static void main(String args[]){
Scanner ream = new Scanner(System.in);
String firstnumber = "";
double firstdec;
String secondnumber = "";
double seconddec;
String thirdnumber = "";
double thirddec;
String fourthnumber = "";
double fourthdec;
String fifthnumber = "";
double fifthdec;
String sixthnumber = "";
double sixthdec;
String seventhnumber = "";
double seventhdec;
String eighthnumber = "";
double eighthdec;
double total = 0;
JTextField GPA = new JTextField();
JFrame panel = new JFrame();
panel.add(new JLabel("First Grade"));
panel.add(new JLabel("Second Grade"));
panel.add(new JTextField(firstnumber));
panel.add(new JTextField(secondnumber));
panel.add(new JLabel("Third Grade"));
panel.add(new JLabel("Fourth Grade"));
panel.add(new JTextField(thirdnumber));
panel.add(new JTextField(fourthnumber));
panel.add(new JLabel("Fifth Grade"));
panel.add(new JLabel("Sixth Grade"));
panel.add(new JTextField(fifthnumber));
panel.add(new JTextField(sixthnumber));
panel.add(new JLabel("Seventh Grade"));
panel.add(new JLabel("Eighth Grade"));
panel.add(new JTextField(seventhnumber));
panel.add(new JTextField(eighthnumber));
int result = JOptionPane.showConfirmDialog(null, panel, "Quesion", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
switch (result) {
case JOptionPane.OK_OPTION:
firstnumber = ream.nextLine();
if (firstnumber.equals("A+")) {
firstdec = 4.4;
total += firstdec;
} else
if (firstnumber.equals("A")) {
firstdec = 4.0;
total += firstdec;
} else
if (firstnumber.equals("A-")) {
firstdec = 3.7;
total += firstdec;
} else
if (firstnumber.equals("B+")) {
firstdec = 3.4;
total += firstdec;
} else
if (firstnumber.equals("B")) {
firstdec = 3.0;
total += firstdec;
} else
if (firstnumber.equals("B-")) {
firstdec = 2.7;
total += firstdec;
} else
if (firstnumber.equals("C+")) {
firstdec = 2.4;
total += firstdec;
} else
if (firstnumber.equals("C")) {
firstdec = 2.0;
total += firstdec;
} else
if (firstnumber.equals("C-")) {
firstdec = 1.7;
total += firstdec;
} else
if (firstnumber.equals("F")) {
firstdec = 0;
total += firstdec;
}
secondnumber = ream.nextLine();
if (secondnumber.equals("A+")) {
seconddec = 4.4;
total += seconddec;
} else
if (secondnumber.equals("A")) {
seconddec = 4.0;
total += seconddec;
} else
if (secondnumber.equals("A-")) {
seconddec = 3.7;
total += seconddec;
} else
if (secondnumber.equals("B+")) {
seconddec = 3.4;
total += seconddec;
} else
if (secondnumber.equals("B")) {
seconddec = 3.0;
total += seconddec;
} else
if (secondnumber.equals("B-")) {
seconddec = 2.7;
total += seconddec;
} else
if (secondnumber.equals("C+")) {
seconddec = 2.4;
total += seconddec;
} else
if (secondnumber.equals("C")) {
seconddec = 2.0;
total += seconddec;
} else
if (secondnumber.equals("C-")) {
seconddec = 1.7;
total += seconddec;
} else
if (secondnumber.equals("F")) {
seconddec = 0;
total += seconddec;
}
thirdnumber = ream.nextLine();
if (thirdnumber.equals("A+")) {
thirddec = 4.4;
total += thirddec;
} else
if (thirdnumber.equals("A")) {
thirddec = 4.0;
total += thirddec;
} else
if (thirdnumber.equals("A-")) {
thirddec = 3.7;
total += thirddec;
} else
if (thirdnumber.equals("B+")) {
thirddec = 3.4;
total += thirddec;
} else
if (thirdnumber.equals("B")) {
thirddec = 3.0;
total += thirddec;
} else
if (thirdnumber.equals("B-")) {
thirddec = 2.7;
total += thirddec;
} else
if (thirdnumber.equals("C+")) {
thirddec = 2.4;
total += thirddec;
} else
if (thirdnumber.equals("C")) {
thirddec = 2.0;
total += thirddec;
} else
if (thirdnumber.equals("C-")) {
thirddec = 1.7;
total += thirddec;
} else
if (thirdnumber.equals("F")) {
thirddec = 0;
total += thirddec;
}
fourthnumber = ream.nextLine();
if (fourthnumber.equals("A+")) {
fourthdec = 4.4;
total += fourthdec;
} else
if (fourthnumber.equals("A")) {
fourthdec = 4.0;
total += fourthdec;
} else
if (fourthnumber.equals("A-")) {
fourthdec = 3.7;
total += fourthdec;
} else
if (fourthnumber.equals("B+")) {
fourthdec = 3.4;
total += fourthdec;
} else
if (fourthnumber.equals("B")) {
fourthdec = 3.0;
total += fourthdec;
} else
if (fourthnumber.equals("B-")) {
fourthdec = 2.7;
total += fourthdec;
} else
if (fourthnumber.equals("C+")) {
fourthdec = 2.4;
total += fourthdec;
} else
if (fourthnumber.equals("C")) {
fourthdec = 2.0;
total += fourthdec;
} else
if (fourthnumber.equals("C-")) {
fourthdec = 1.7;
total += fourthdec;
} else
if (fourthnumber.equals("F")) {
fourthdec = 0;
total += fourthdec;
}
fifthnumber = ream.nextLine();
if (fifthnumber.equals("A+")) {
fifthdec = 4.4;
total += fifthdec;
} else
if (fifthnumber.equals("A")) {
fifthdec = 4.0;
total += fifthdec;
} else
if (fifthnumber.equals("A-")) {
fifthdec = 3.7;
total += fifthdec;
} else
if (fifthnumber.equals("B+")) {
fifthdec = 3.4;
total += fifthdec;
} else
if (fifthnumber.equals("B")) {
fifthdec = 3.0;
total += fifthdec;
} else
if (fifthnumber.equals("B-")) {
fifthdec = 2.7;
total += fifthdec;
} else
if (fifthnumber.equals("C+")) {
fifthdec = 2.4;
total += fifthdec;
} else
if (fifthnumber.equals("C")) {
fifthdec = 2.0;
total += fifthdec;
} else
if (fifthnumber.equals("C-")) {
fifthdec = 1.7;
total += fifthdec;
} else
if (fifthnumber.equals("F")) {
fifthdec = 0;
total += fifthdec;
}
sixthnumber = ream.nextLine();
if (sixthnumber.equals("A+")) {
sixthdec = 4.4;
total += sixthdec;
} else
if (sixthnumber.equals("A")) {
sixthdec = 4.0;
total += sixthdec;
} else
if (sixthnumber.equals("A-")) {
sixthdec = 3.7;
total += sixthdec;
} else
if (sixthnumber.equals("B+")) {
sixthdec = 3.4;
total += sixthdec;
} else
if (sixthnumber.equals("B")) {
sixthdec = 3.0;
total += sixthdec;
} else
if (sixthnumber.equals("B-")) {
sixthdec = 2.7;
total += sixthdec;
} else
if (sixthnumber.equals("C+")) {
sixthdec = 2.4;
total += sixthdec;
} else
if (sixthnumber.equals("C")) {
sixthdec = 2.0;
total += sixthdec;
} else
if (sixthnumber.equals("C-")) {
sixthdec = 1.7;
total += sixthdec;
} else
if (sixthnumber.equals("F")) {
sixthdec = 0;
total += sixthdec;
}
seventhnumber = ream.nextLine();
if (seventhnumber.equals("A+")) {
seventhdec = 4.4;
total += seventhdec;
} else
if (seventhnumber.equals("A")) {
seventhdec = 4.0;
total += seventhdec;
} else
if (seventhnumber.equals("A-")) {
seventhdec = 3.7;
total += seventhdec;
} else
if (seventhnumber.equals("B+")) {
seventhdec = 3.4;
total += seventhdec;
} else
if (seventhnumber.equals("B")) {
seventhdec = 3.0;
total += seventhdec;
} else
if (seventhnumber.equals("B-")) {
seventhdec = 2.7;
total += seventhdec;
} else
if (seventhnumber.equals("C+")) {
seventhdec = 2.4;
total += seventhdec;
} else
if (seventhnumber.equals("C")) {
seventhdec = 2.0;
total += seventhdec;
} else
if (seventhnumber.equals("C-")) {
seventhdec = 1.7;
total += seventhdec;
} else
if (seventhnumber.equals("F")) {
seventhdec = 0;
total += seventhdec;
}
eighthnumber = ream.nextLine();
if (eighthnumber.equals("A+")) {
eighthdec = 4.4;
total += eighthdec;
} else
if (eighthnumber.equals("A")) {
eighthdec = 4.0;
total += eighthdec;
} else
if (eighthnumber.equals("A-")) {
eighthdec = 3.7;
total += eighthdec;
} else
if (eighthnumber.equals("B+")) {
eighthdec = 3.4;
total += eighthdec;
} else
if (eighthnumber.equals("B")) {
eighthdec = 3.0;
total += eighthdec;
} else
if (eighthnumber.equals("B-")) {
eighthdec = 2.7;
total += eighthdec;
} else
if (eighthnumber.equals("C+")) {
eighthdec = 2.4;
total += eighthdec;
} else
if (eighthnumber.equals("C")) {
eighthdec = 2.0;
total += eighthdec;
} else
if (eighthnumber.equals("C-")) {
eighthdec = 1.7;
total += eighthdec;
} else
if (eighthnumber.equals("F")) {
eighthdec = 0;
total += eighthdec;
}
JButton b1 = new JButton("Ok");
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
panel.dispose();
}
});
JPanel panel1 = new JPanel(new GridLayout(0, 4));
panel1.add(new JLabel("Your GPA is: "));
panel1.add(new JTextField());
double gpa = Double.parseDouble(GPA.getText());
gpa = total/8;
JFrame frame = new JFrame();
JOptionPane.showInputDialog(frame, "Your GPA is" + gpa);
break;
case JOptionPane.CANCEL_OPTION:
panel.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
break;
}
}
}
错误堆栈跟踪是
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.checkNotAWindow(Container.java:490)
at java.awt.Container.addImpl(Container.java:1091)
at java.awt.Container.add(Container.java:973)
at javax.swing.plaf.basic.BasicOptionPaneUI.addMessageComponents(BasicOptionPaneUI.java:358)
at com.apple.laf.AquaOptionPaneUI.createMessageArea(AquaOptionPaneUI.java:92)
at javax.swing.plaf.basic.BasicOptionPaneUI.installComponents(BasicOptionPaneUI.java:172)
at javax.swing.plaf.basic.BasicOptionPaneUI.installUI(BasicOptionPaneUI.java:141)
at javax.swing.JComponent.setUI(JComponent.java:666)
at javax.swing.JOptionPane.setUI(JOptionPane.java:1860)
at javax.swing.JOptionPane.updateUI(JOptionPane.java:1882)
at javax.swing.JOptionPane.<init>(JOptionPane.java:1845)
at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:857)
at javax.swing.JOptionPane.showConfirmDialog(JOptionPane.java:795)
at javax.swing.JOptionPane.showConfirmDialog(JOptionPane.java:757)
at Caculator.main(Caculator.java:55)
如果我点击“在Caculator.main(caculator.java:55)
这使我此行
int result = JOptionPane.showConfirmDialog(null, panel, "Quesion", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
我编辑我所有的“面板”为“JPanel”也删除panel.dispose();并删除pane.setDefaultCloseOperations等...虽然它仍然给我同样的错误信息。 –
对不起,我不这样做全职。如果您需要更多说明,您可以在此发表意见。 – anacron
当我将代码导出到jar文件中时。我尝试打开它。它说“Java JAR文件”GPA Calculator“无法启动。请检查控制台是否有可能的错误消息。 –