这是我的代码。
if (check1 != 0 && check2 != 0 && check3 != 0)
{
JOptionPane.showMessageDialog(main, "You are now signed up","Welcome", JOptionPane.INFORMATION_MESSAGE);
new HomePage();
}
尽管显示了
HomePage
对话框,但此处未创建JOptionPane
类实例。此代码在SignUp.java
中。 HomPage
是带有main
方法的类,与上述代码在同一包中。为什么是这样?实例化该怎么办?
HomePage.java看起来像这样
public class HomePage extends javax.swing.JFrame implements ActionListener {
public HomePage() {
initComponents();
}
private void initComponents() {
...
}
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HomePage().setVisible(true);
}
});
}
}
我得到了解决方案。
我变了
new HomePage()
至
new HomePage().setVisible(true);
而且效果很好。
最佳答案
showMessageDialog()
阻止代码执行。使用“确定”按钮或“取消”按钮关闭对话框后,将执行下一行。
同样,变量h
仅在if
块内可用。如果您需要在其他地方访问它,则需要在if
外部对其进行声明,可以在方法本地或在类字段中进行声明。
由于h
是扩展了HomePage
的JFrame
的实例,因此只需显示与在main()
的HomePage
方法中类似的显示即可:
h.setVisible(true);
请注意,创建类的实例与对类的对象执行操作之间存在巨大差异。
关于java - 类实例化未发生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35533210/