这是我的代码。
if (check1 != 0 && check2 != 0 && check3 != 0)
{
JOptionPane.showMessageDialog(main, "You are now signed up","Welcome", JOptionPane.INFORMATION_MESSAGE);
new HomePage();
}
尽管显示了 JOptionPane
对话框,但此处并未创建 HomePage
类实例。此代码位于 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().setVisible(true);
而且效果很好。
最佳答案
showMessageDialog()
阻止代码的执行。使用“确定”按钮或“取消”按钮关闭对话框后,将执行下一行。
此外,变量 h
只能在 if
block 中使用。如果您需要在其他地方访问它,则需要在 if
外部声明它,可以在方法本地声明,也可以作为类字段声明。
由于 h
是 HomePage
的一个实例,它扩展了 JFrame
,因此您只需像在 中那样显示它即可。
方法:HomePage
的 >main()
h.setVisible(true);
请注意,创建类的实例和使用类的对象执行操作之间存在巨大差异。
关于java - 类实例化没有发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35533210/