最近在做一个简单的Swing管理系统基本框架, 于是总结一些基本的图形部件用法技巧。
1. 一级导航面板
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.setFocusable(false);
tabbedPane.setBackground(new Color(201, 229, 189));
tabbedPane.setBorder(new BevelBorder(BevelBorder.RAISED));
2. 二级管理面板
JPanel ManagePanel01 = new JPanel();
JPanel ManagePanel02 = new JPanel();
ManagePanel01.setBackground(new Color(213, 219, 189));
ManagePanel01.setLayout(new BoxLayout(baseManagePanel,
BoxLayout.X_AXIS));
//public Component add(Component comp)
ManagePanel01.add(JButton button)
...
3. 加入二级管理面板到导航面板
//public void addTab(String title, Icon icon, Component component, String tip)
tabbedPane.addTab(" 导航标签面板一 ", null, ManagePanel01 , "导航标签面板一");
tabbedPane.addTab(" 导航标签面板二 ", null, ManagePanel02 , "导航标签面板二");
...
4. 关于二级管理面板和JButton的对应关系
可以考虑button设计应extends JInternalFrame类(此类用法可具体参见相关信息)
如何获得具体的JInternalFrame对象实例呢? 用Java反射机制可获得:
Class fClass = Class.forName(frameName);
Constructor constructor = fClass.getConstructor(null);
jf = (JInternalFrame) constructor.newInstance(null);
这样就可以完成对二级管理面板的任意对应JButton都可以只用以上三句获得实例对象,达到复用目的(实现一对多)。
5. 可能理解会有些模糊, 但对你在代码重构有所思路甚好,时间仓促,可不细,望能见谅。
6. 最终还要考虑把Jtree部件加加入进去。