在新窗口的JFrame或JPanel之间切换?

时间:2015-08-07 14:40:37

标签: java swing

我想知道在Java Swing应用程序的窗口之间切换的最佳做法是什么。我可以为每个窗口创建一个JFrame,也可以为每个窗口创建一个新的JPanel并在一个JFrame中切换它们。

4 个答案:

答案 0 :(得分:1)

最佳做法是在面板之间切换。 第一个优点是效率,第二个优点是每个人都只使用静态窗口,这些窗口保持位置和大小。

但我很确定会有更多意见,但对我来说切换面板更实用。

答案 1 :(得分:1)

您可以使用JTabbedPane的实例。这允许您在JPanels之间切换并保持一切非常有条理。另外一个很大的好处是鼠标处理已经为您完成了。这是一个简单的示例,向您展示了使用JTabbedPane是多么容易。

public class TabbedDemo
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        JTabbedPane tabbed = new JTabbedPane();

        JPanel panel1 = new JPanel();
        panel1.add(new JLabel("Panel 1"));
        tabbed.addTab("Panel 1", panel1);

        JPanel panel2 = new JPanel();
        panel2.add(new JLabel("Panel 2"));
        tabbed.addTab("Panel 2", panel2);

        JPanel panel3 = new JPanel();
        panel3.add(new JLabel("Panel 3"));
        tabbed.addTab("Panel 3", panel3);

        frame.add(tabbed);
        frame.setPreferredSize(new Dimension(400,400));
        frame.setVisible(true);
    }
}

你的GUI结果就像这样。

enter image description here

答案 2 :(得分:0)

取决于申请。在大多数情况下,通常的做法是将JPanel置于JFrame之内,这样第二种选择可能是最好的,而且不会混乱。

答案 3 :(得分:0)

理想情况下,Swing个应用程序应该只有一个JFrame。您应该在JPanel之间切换或使用JInternalFrame。 并且Modal dialogs是与用户交互的最佳做法。