效果图:
现在写页面的方式有很多,Java也可以写页面,只不过太过繁琐了。
鄙人不才,对swing进行简单的封装后,自我感觉顺手了许多(当然可能还有改进空间)
一、整体架构
StartFrame 启动程序 MainFrame 主要窗体 TabPanel tab面板 SwingBuilder 构建器,用来构建菜单以及tab页面结合 Theme 主题接口,用来适应不同分辨率屏幕的样式 BasePanel 基础面板,用来构建panel
传统写法:
JFrame f=new JFrame();
Container contentPane= f.getContentPane();
contentPane.setLayout(new CardLayout(2, 1));
JPanel p3 = new JPanel();
p3.setLayout(new GridLayout(3, 1));
p3.add(new JButton("11"));
p3.add(new JButton("22"));
p3.add(new JButton("33"));
contentPane.add(p3);
我的写法:
JPanel cfgPanelWest = new Builder()
.gridLayout(1, 2)
.add(this.button1)
.add(this.button2)
.build();
上述效果图完整的页面:
二、一个简单的页面
package com.xy.view.panel;
import com.xy.view.panel.base.BasePanel;
import com.xy.view.theme.ThemeFactory;
import javax.swing.*;
public class SvnHelperPanel extends BasePanel {
private JButton button1;//提取svn
private JButton button2;//覆盖
private JScrollPane scrollPane1;
private JTextArea textArea1;
public SvnHelperPanel() {
/**
* 区域划分:头部 操作区
* 中间区域 显示
*/
//1.初始化组件
initComponet();
//2. 构建头部 操作区
//2.1 需要先构建 1行2列的按钮组
JPanel cfgPanelWest = new Builder()
.gridLayout(1, 2)
.add(this.button1)
.add(this.button2)
.build();
//2.2需要构建一个boderLayout,并拿出west给2.1的按钮放。如果直接把cfgPanelWest放到mainPanel,会导致按钮拉长平分窗体
JPanel cfgPanel = new Builder()
.borderLayout()
.add(cfgPanelWest, "West")
.border("操作区域")
.build();
//3.构建中间区域
BasePanel centerPanel = new Builder()
.gridLayout(1, 1)
.add(scrollPane1)
.border("主体区域")
.build();
//4.构建主Panel,添加顶部操作栏 和中间区域 以及左侧栏
mainPanel = new Builder()
.borderLayout()
.add(cfgPanel, "North")
.add(centerPanel, "Center")
.build();
//5.添加主Panel
after();
}
private void initComponet() {
//头部操作栏cfgPanel
//button
button1 = new JButton(" 提取SVN ");
button1.addActionListener((x) -> {
//按钮事件
JOptionPane.showMessageDialog(null,"提取SVN!");
});
button2 = new JButton(" 覆盖旧文件 ");
button2.addActionListener((x) -> {
//按钮事件
JOptionPane.showMessageDialog(null,"覆盖旧文件!");
});
//中间区域 centerPanel
buildTextAreaWithScroll("xxx");
}
private void buildTextAreaWithScroll(String initText) {
this.scrollPane1 = new JScrollPane();//左边滚动面板实例化
this.textArea1 = new JTextArea();//左边数据区域实例化
this.textArea1.setText(initText);
this.textArea1.setFont(ThemeFactory.getTheme().getFont("common"));
this.scrollPane1.setViewportView(this.textArea1);//左边数据区域加入滚动面板,支持滚动
}
}
三、页面步骤(五个步骤画一个页面!!!)
//1.初始化组件
//2. 构建头部 操作区
//3.构建中间区域
//4.构建主Panel,添加顶部操作栏 和中间区域 以及左侧栏
//5.添加主Panel
整体代码量也不多
四、源代码
感兴趣的可以拿走试试
关注公众号:编程周记,回复关键字 “ swing” 获取链接,谢谢