用户界面-来自不同类的Java组件



我正在尝试创建组件并将它们从我的程序中的不同类实现到我的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扩展?像这里的人一样吗?

相关内容

  • 没有找到相关文章

最新更新