首先,我是Java和GUI编程的新手。我试图找到正确的方法来构建我的第一个GUI应用程序与多个页面/标签' (抱歉,我是一名webdev)。
这是app背后的想法:
我这样做是对的吗?我觉得有点卡住,我不知道我是否在正确的轨道上。
更清楚:使用多个页面/标签制作GUI的正确/最佳方式是什么。
答案 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
答案 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)显示了它的功能以及如何使用每个功能的示例代码。