Java:创建多个内容窗格并在它们之间切换

时间:2018-12-01 16:46:03

标签: java swing user-interface intellij-idea awt

我正在创建我的第一个Java GUI应用程序,并且我想要多个屏幕/窗格。到目前为止,我已经创建了两个Java源。一个叫做HomeInterface.form,另一个叫做RestockInterface.form。

但是,我想通过单击按钮在两个JPanel之间切换。这里的问题是,我可能不知道该如何实现。现在,每次我单击按钮backToHomeInterfaceButton时,都会创建一个新的JFrame。另外,我必须创建一个新的HomeInterface对象以获取rootPanel。这是荒唐的。

你们知道我如何可以在不创建新对象和每次框架的情况下实现这一目标吗?我想保持相同的框架,只是在不同的rootPanel之间切换,而不必每次都创建一个新的框架。

请记住,我不想使用CardLayout或TabbedLayout,我正在使用IntelliJ GridLayout并希望保留它!

HomeInterface.form代码:

public class HomeInferface{
    private JPanel rootPanel;
    private JButton thisIsMyButtonButton;
    private JPanel test;

    public HomeInferface(){
        JFrame frame = new JFrame("Beispiel Frame");
        frame.setSize(500, 500);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(rootPanel);
        frame.setVisible(true);

        thisIsMyButtonButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                SellInterface sellInterface = new SellInterface();
                frame.setContentPane(sellInterface.getRootPanel());
                frame.revalidate();
            }
        });

        public JPanel getRootPanel() {
            return rootPanel;
        }
    }
}

RestockForm.form:

public class RestockInterface {
    private JPanel rootPanel;
    private JButton backToHomeInterfaceButton;

    public RestockInterface(JFrame frame) {
        backToHomeInterfaceButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                HomeInferface homeInterface = new HomeInferface();                    
                frame.setContentPane(homeInterface.getRootPanel());
                frame.revalidate();
            }
        });
    }

    public JPanel getRootPanel() {
        return rootPanel;
    }
}

0 个答案:

没有答案