Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NetBeans将值传递给JFrame会产生编译错误_Java_Swing_Netbeans_Jframe - Fatal编程技术网

Java NetBeans将值传递给JFrame会产生编译错误

Java NetBeans将值传递给JFrame会产生编译错误,java,swing,netbeans,jframe,Java,Swing,Netbeans,Jframe,有两个jframe 首页 第二页 FirstPage上有一个按钮。当用户单击它时,我需要打开SecondPage 这是FirstPage中的代码: private void btn_testActionPerformed(java.awt.event.ActionEvent evt) { String testName="Damith"; SecondFrame win1=new SecondFr

有两个jframe

  • 首页
  • 第二页
  • FirstPage
    上有一个按钮。当用户单击它时,我需要打开
    SecondPage

    这是
    FirstPage
    中的代码:

    private void btn_testActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
        String testName="Damith";
        SecondFrame win1=new SecondFrame(testName);
        win1.setVisible(true);
    } 
    
    public SecondFrame(String anyname) {
        initComponents();
    
    }
    
    这就是我如何修改第二页的方法:

    private void btn_testActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
        String testName="Damith";
        SecondFrame win1=new SecondFrame(testName);
        win1.setVisible(true);
    } 
    
    public SecondFrame(String anyname) {
        initComponents();
    
    }
    
    当我运行项目时,它会说:

    一个或多个项目符合错误要求

    但是,当我单击“无论如何运行”时,它会像我预期的那样工作


    那么,为什么他们说“一个或多个项目符合错误”?

    我看到您将NetBeans为您生成的默认构造函数修改为:

    public SecondFrame(String anyname) {
        initComponents();
    
    }
    
    这意味着,如果用NetBeans为您生成的默认构造函数替换(而不是添加)上述内容,则会导致编译错误,因为NetBeans自动生成的代码会调用它生成的默认构造函数,而不是您显式创建的构造函数:

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new SecondFrame().setVisible(true);
        }
    });
    
    因此,如果上面的假设是正确的(并且这是唯一一个,可以根据您提供的详细信息做出的假设),那么下面一行就是错误的原因:

    new SecondFrame().setVisible(true);
    

    如果没有,只需将鼠标悬停在编辑器上正确行的红色符号上,让编译器通知您具体的错误。

    您也可以发布编译错误消息吗?@toubou它只会说“一个或多个项目符合错误,您正在运行的应用程序可能会意外结束”。此错误消息显示为弹出框。有“无论如何运行”按钮。当我点击它时,程序正在按照我的预期运行。我不知道为什么会出现这种错误。“一个或多个项目符合错误”表示您的一个项目文件中存在错误。程序可能会一直工作到代码的该部分被执行为止,在这种情况下,程序将崩溃。编译器可能正在告诉您所述错误的位置。如果您认为没有,请发布代码,但一定要尝试从中删除不相关的部分。@user1803551您说过“编译器可能正在告诉您所述错误的位置”。我看不到那样的东西。编译器不知道哪里出错。非常感谢。在c#中使用Visual Studio是可能的。所以我认为在java中也是可能的。这意味着如果需要传递值,我需要重写构造函数?这是正确的方法吗?不,Java中没有构造函数重写的概念(您需要首先明确重写和重载之间的区别)。相反,有一个“多构造函数”的概念,根据这个概念,您可以使用默认的构造函数,例如NetBeans提供给您的构造函数,还可以添加一个接受参数的构造函数,就像您所做的那样。在运行时,JVM非常聪明,可以根据您在代码中指定的内容来决定调用哪一个