这是我的代码。

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是扩展了HomePageJFrame的实例,因此只需显示与在main()HomePage方法中类似的显示即可:

h.setVisible(true);


请注意,创建类的实例与对类的对象执行操作之间存在巨大差异。

关于java - 类实例化未发生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35533210/

10-10 03:39