Java 在NetBeans中将参数从一个JFrame传递到另一个JFrame

Java 在NetBeans中将参数从一个JFrame传递到另一个JFrame,java,swing,model-view-controller,Java,Swing,Model View Controller,我正在做一项大学作业。该程序使用服务器/客户端(通过套接字)以及模型-视图-控制器方法 我正在用JFrame创建一个登录屏幕,这个登录屏幕必须调用另一个JFrame,具体取决于刚刚登录的用户。 正如标题所说,我试图将控制器从登录JFrame传递到另一个JFrame。有了JInternalFrame,我会用一个按钮这样做: 注意:我希望第二个帧是独立的,我不想向JDesktopPane添加jinternalframe JFrame(我删除了大部分自动生成的代码): 内部框架: package ja

我正在做一项大学作业。该程序使用服务器/客户端(通过套接字)以及模型-视图-控制器方法

我正在用JFrame创建一个登录屏幕,这个登录屏幕必须调用另一个JFrame,具体取决于刚刚登录的用户。 正如标题所说,我试图将控制器从登录JFrame传递到另一个JFrame。有了JInternalFrame,我会用一个按钮这样做:

注意:我希望第二个帧是独立的,我不想向JDesktopPane添加jinternalframe

JFrame(我删除了大部分自动生成的代码):

内部框架:

package javaapplication1;
import Controller.Controller;
/**
 *
 * @author invitado
 */
public class MyInternalFrame extends javax.swing.JInternalFrame {
    private Controller c;
    /**
     * Creates new form MyInternalFrame
     */
    public MyInternalFrame(Controller c) {
        this.c = c;
        initComponents();
    }
}
这一直适用于我,但当我使用JFrame而不是JInternalFrame进行尝试时,
new MyFrame2().setVisible(true)上的一行代码给了我一个错误


我是否应该将参数控制器放入
MyFrame2().setVisible(true)或者有其他方法吗?

好的,这可能会弄糟,但是帧不应该知道控制器,它应该生成控制器可以响应的事件,然后做出进一步的决定。在您当前的实现中,框架正在决定下一步应该发生什么,这不是它的责任,这是控制器请参见@andrewhompson谢谢您的反馈。好吧,这可能会带来麻烦,但框架不应该知道控制器,它应该生成控制器可以响应的事件,然后做出进一步的决策。在您当前的实现中,框架正在决定下一步应该发生什么,这不是它的责任,这是控制器请参见@andrewhompson感谢您的反馈。
package javaapplication1;
import Controller.Controller;
/**
 *
 * @author invitado
 */
public class MyInternalFrame extends javax.swing.JInternalFrame {
    private Controller c;
    /**
     * Creates new form MyInternalFrame
     */
    public MyInternalFrame(Controller c) {
        this.c = c;
        initComponents();
    }
}
public static void main(String args[]) {
        /* Set the Nimbus look and feel */
                  . . .
/* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MyFrame2().setVisible(true);
            }
        });
    }