我正在尝试创建组件并将它们从我的程序中的不同类实现到我的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?
谢谢你们了!
我想你指的是这一行注释:
//SearchFlight searchflightComp = new SearchFlight();
您可以将SearchFlight
设置为JPanel
的子类,或者创建一个控制器,为该选项卡创建一个JPanel
并返回它,例如
SearchFlight searchflightComp = new SearchFlight();
tabpane1.addTab( searchflightComp.getName(), searchflightComp.buildPanel() );
作为一般提示,您应该仔细阅读MVC模式。这可能在一定程度上对您有所帮助:MVC模式和SWING
也许你可以从JComponent扩展?像这里的人一样吗?