摇摆导航 - 基本

时间:2012-10-19 08:24:59

标签: java swing

我刚开始使用Swing。我开始掌握它了。

然而,我对摇摆中的屏幕导航提出了一个问题。

这就是我构建应用程序的方式。

  • 公共类MainFrame扩展了JFrame
  • 公共类LoginPanel扩展了JPanel
  • public class HomeScreenPanel扩展了JPanel

在大型机中我有以下代码:

public class MainFrame extends JFrame {

    public MainFrame() {
        initUI();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                MainFrame ex = new MainFrame();
                ex.setVisible(true);
            }
        });
    }

    private void initUI(){
        InputScreenPanel inputScreenPanel = new InputScreenPanel();
        getContentPane().add(inputScreenPanel);
        Dimension dim = new Dimension(400, 300);
        setMinimumSize(dim);
    }
}

在LoginPanel中,我初始化屏幕并添加一个按钮和一个文本框。我为按钮单击事件编写了事件处理程序。我想从文本框中获取值并将用户重定向到HomeScreenPanel。如何在执行此按钮单击时切换面板是LoginPanel,并且我没有参考框架,因此我可以切换面板。

3 个答案:

答案 0 :(得分:3)

我认为你有两个选择:

  1. 创建InputScreenPanel时,可以将MainFrame对象作为参数传递。你应该问问自己,你的InputScreenPanel是否知道你的MainFrame是否有意义。在某些情况下,它可能,但根据你的例子,我会说不,并选择第二个选项。
  2. 如果使用模型 - 视图 - 控制器设计,您可以为InputScreenPanel(或其后面的任何模型结构)创建某种事件处理程序结构。用户将登录,这将创建一个MainFrame(或另一个类)可以响应的事件。

答案 1 :(得分:2)

您应该使用JDialog作为登录部分,然后在新的JFrame

中启动您的应用程序

答案 2 :(得分:1)

我会使用某种能够对程序各个部分内的变化做出反应的模型/控制器。

我将连接此控制器,以便您可以替换实现而不影响应用程序的其余部分

基本上这意味着登录窗格和主窗格不关心它们的显示方式