Java GUI - 多个页面或选项卡

时间:2014-07-20 19:31:30

标签: java swing user-interface

首先,我是Java和GUI编程的新手。我试图找到正确的方法来构建我的第一个GUI应用程序与多个页面/标签' (抱歉,我是一名webdev)。

这是app背后的想法:

  • 有一个菜单,用户可以在其中选择一个'
  • 页面
  • 有一个代表应用名称的标签
  • 最后还有JPanel,我想要'页面的内容'。

http://i.imgur.com/wIyceUh.png
http://i.imgur.com/Oqrk0mA.png

我这样做是对的吗?我觉得有点卡住,我不知道我是否在正确的轨道上。

更清楚:使用多个页面/标签制作GUI的正确/最佳方式是什么。

3 个答案:

答案 0 :(得分:1)

好的,我会给你一些示例代码,用于创建Swing

的多个标签
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JButton;

public class GUI extends JFrame {
    private JTabbedPane tabManager = new JTabbedPane(JTabbedPane.TOP); // This will manage the tabs

    // Some GUI code...

    public void addTab(String name, JPanel panel) { // Takes in a name for the tab and 
                                        // a panel for the tab to display when clicked

        getContentPane().add(tabManager);

        tabManager.addTab(name, null, panel, name); // The first name is the name of 
                                                    // the tab and second one is what 
                                                    // is display in the little popup 
                                                    // thing when you hover the mouse 
                                                    // over the tab
    }

    public void removeTab(int index) { // Removes a tab at the index
        tabManager.removeTabAt(index);
    }

    // Some more GUI code...

    public static void main(String[] args) { // In main method or anywhere else
        GUI gui = new GUI(/*constructorParams*/);
        JPanel panel = new JPanel();
        panel.add(new JButton("This is a button!"));
        gui.addTab("This is a tab!", panel); // Adds a tab with the name 
                                   // "This is a tab!" and the panel to display "panel"
    }

}

有关JTabbedPane

的详细信息,请参阅此link

答案 1 :(得分:1)

正如其他人在评论中建议的那样,您可能想要使用CardLayout。从菜单项的听众中,您可以调用cardLayout.show(...)来选择您想要的面板。请参阅How to use CardLayout

此外,我注意到您正在使用Netbeans构建器工具。您可能会在How to use CardLayout with Netbeans GUI Buidler获得一些帮助。

另外你的问题似乎暗示你可能想要使用标签。在这种情况下,您将需要使用选项卡式窗格。您只需从选项板拖动选项卡式窗格,然后开始将选项板添加到选项卡式窗格。也许this link也有助于拖动面板类。注意:拖动多个面板时,应拖动面板,使光标位于第一个选项卡面板的实际选项卡旁边。

答案 2 :(得分:0)

我会从@Hovercraft Full Of Eels中获得上述建议,以查看Sun的Java教程。

然而,在阅读完这些内容后,我建议您查看http://www.miglayout.com上的“快速入门指南”和“Swing”演示,因为MigLayout使手动编码的外观设计更加易于阅读,理解和编写。大多数/所有内置于Java的布局管理器。

它的Swing演示应用程序(该网站中途的黄色按钮,或http://www.migcalendar.com/miglayout/swingdemoapp.jnlp)显示了它的功能以及如何使用每个功能的示例代码。