我正在尝试创建组件,并将它们从程序中的不同类实现到我的JFrame中。
我已经创建了一个JTabbedPane,每个选项卡代表一个类。每个选项卡的所有组件都放置在各自的选项卡中。
//creates the JTabbedPane, and the panels. object creation.
//panelx corisponds to the tab number as well. tabbs are counted from left to right.
tabpane1 = new JTabbedPane();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
JPanel panel4 = new JPanel();
JPanel panel5 = new JPanel();
JPanel panel6 = new JPanel();
JLabel searchlabel1 = new JLabel("hey");
JLabel searchlabel2 = new JLabel("hi");
panel1.add(searchlabel1);
panel1.add(searchlabel2);
//SearchFlight searchflightComp = new SearchFlight();
tabpane1.addTab("Search Flight", panel1);
tabpane1.addTab("Select Flight", panel2);
tabpane1.addTab("Flight Price", new JLabel("This is tab 1ffff"));
tabpane1.addTab("Book Ticket", new JLabel("This is tab 1fff"));
tabpane1.addTab("Book Ticket", new JLabel("This is tab fs1"));
tabpane1.addTab("Payment", new JLabel("This is tabgf 1"));
tabpane1.addTab("Booking Summary", new JLabel("This is tabgf 1"));
//added the JTabbedPane to JFrame.
frame.getContentPane().add(tabpane1);这是可行的。我只是真正的工作与第一个标签,现在得到的感觉,它是如何工作等。但我甚至不知道如何开始。我会在另一个类中创建一个面板,然后返回它吗?或者扩展JFrame?
谢谢你们!
发布于 2014-03-10 23:15:13
我假设你指的是下面这行注释:
//SearchFlight searchflightComp = new SearchFlight();您可以使SearchFlight成为JPanel的子类,或者更好地使其成为控制器,它为该选项卡创建一个JPanel并返回它,例如
SearchFlight searchflightComp = new SearchFlight();
tabpane1.addTab( searchflightComp.getName(), searchflightComp.buildPanel() );作为一般技巧,您应该阅读有关MVC模式的知识。这在一定程度上可能会对您有所帮助:The MVC pattern and SWING
发布于 2014-03-10 23:18:31
也许你可以从JComponent扩展一下?就像他们做here一样
https://stackoverflow.com/questions/22303828
复制相似问题