首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自不同类的Java组件

来自不同类的Java组件
EN

Stack Overflow用户
提问于 2014-03-10 23:05:35
回答 2查看 48关注 0票数 0

我正在尝试创建组件,并将它们从程序中的不同类实现到我的JFrame中。

我已经创建了一个JTabbedPane,每个选项卡代表一个类。每个选项卡的所有组件都放置在各自的选项卡中。

代码语言:javascript
复制
//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?

谢谢你们!

EN

回答 2

Stack Overflow用户

发布于 2014-03-10 23:15:13

我假设你指的是下面这行注释:

代码语言:javascript
复制
//SearchFlight searchflightComp = new SearchFlight();

您可以使SearchFlight成为JPanel的子类,或者更好地使其成为控制器,它为该选项卡创建一个JPanel并返回它,例如

代码语言:javascript
复制
SearchFlight searchflightComp = new SearchFlight();
tabpane1.addTab( searchflightComp.getName(), searchflightComp.buildPanel() );

作为一般技巧,您应该阅读有关MVC模式的知识。这在一定程度上可能会对您有所帮助:The MVC pattern and SWING

票数 0
EN

Stack Overflow用户

发布于 2014-03-10 23:18:31

也许你可以从JComponent扩展一下?就像他们做here一样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22303828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档