Java NetBeans将值传递给JFrame会产生编译错误
有两个jframeJava 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
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非常聪明,可以根据您在代码中指定的内容来决定调用哪一个