效果图:

现在写页面的方式有很多,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;//提取svnprivate 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.添加主Panelafter();}private void initComponet() {//头部操作栏cfgPanel//buttonbutton1 = new JButton("  提取SVN  ");button1.addActionListener((x) -> {//按钮事件JOptionPane.showMessageDialog(null,"提取SVN!");});button2 = new JButton("  覆盖旧文件  ");button2.addActionListener((x) -> {//按钮事件JOptionPane.showMessageDialog(null,"覆盖旧文件!");});//中间区域 centerPanelbuildTextAreaWithScroll("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”  获取链接,谢谢

自己封装的swing框架,能够快速写出一个页面(带Tab、菜单)相关推荐

  1. 如何快速写出一篇核心论文?

    论文的创作对于每个人来说都是一件难事,因为论文是一个人对自己学过的知识的总结.论文的创作需要熟悉掌握一定的专业知识,要能将这些理论知识应用到论文中.在学习生活中你可以发现有些同学写论文需要好长时间,有 ...

  2. 如何快速写出高质量的文章?用易撰轻轻松松10W+

    要想写出受欢迎的爆款文章,其难度并不低,尤其对于新手而言. 网络上铺天盖地的文章宣传,自媒体门槛如何如何低,即使没有写作功底也完全没有关系,于是吸引了很多新人加入,他们一股脑地写,然后发布,坚持了很久 ...

  3. Java的IDEA最常用快捷键汇总+快速写出Main函数

    前言 IDEA可以说是当下Java程序员日常开发的神器,但是想要发挥这款神器的牛逼威力,必须得熟练使用它的各种快捷键才行.本篇总结下使用IDEA(也就是IntelliJ IDEA )进行日常开发中最常 ...

  4. c++如何快速写出get set_如何快速写出一篇合格的毕业论文

    从自己毕业时艰难的才能在三个月内完成一篇,到如今十天内就可以整出来一篇,不需要加班的那种.本人的专业是法律硕士,在此仅以法律专业为例,如何快速写出一篇合格的毕业论文.事实告诉你,完全不用20天时间. ...

  5. 用聚合数据API快速写出小程序

    利用聚合数据API快速写出小程序,过程简单. 1.申请小程序账号 2.进入开发 3.调用API.比如"苏州实时公交"小程序,选择的是苏州实时公交API. 苏州实时公交API文档:h ...

  6. 掌握这几点 让你快速写出优质电影解说文案!

    掌握这几点 让你快速写出优质电影解说文案! 大家好,今天和小伙伴们聊聊我如何快速写出一篇电影解说方案. 电影解说文案可以通过五步来写:1.选电影.2.找线或点.3.把线或点串起来.4.润色文案.5.故 ...

  7. 如何通俗理解并快速写出麦克斯韦方程组?

    引言 所谓"当初电磁学的烂,原理用时火葬场",哈?你问我说快速写出麦克斯韦方程组除了研究生复试时还能有啥用又不是小学生?这种圣经你光电学生不得烂熟于心关键时刻装逼用吗?ヽ(`Д´) ...

  8. 用聚合数据API(苏州实时公交API)快速写出小程序

    利用聚合数据API快速写出小程序,过程简单. 1.申请小程序账号 2.进入开发 3.调用API.比如"苏州实时公交"小程序,选择的是苏州实时公交API. 苏州实时公交API文档:h ...

  9. 用聚合数据API快速写出小程序(苏州实时公交)

    利用聚合数据API快速写出小程序,过程简单. 1.申请小程序账号 2.进入开发 3.调用API.比如"苏州实时公交"小程序,选择的是苏州实时公交API. 苏州实时公交API文档:h ...

  10. html如何使用聚合数据,用聚合数据API快速写出小程序

    利件览客需和下于有快都业视的事一房望站是有用聚合数据API快速写出小程序,过程简抖要支圈者器说是事天开的.年后编定功口小发还单. 1.申请小程遇新是直朋能到分览序账号 2.进入开发 3.调友,记基开前 ...

最新文章

  1. 算法--------设计哈希集合
  2. OVS vxlan(二十八)
  3. ArcGIS Engine开发前基础知识(4)
  4. VTK:可视化之HanoiIntermediate
  5. mysql建库权限_mysql数据库用户权限及建库脚本
  6. Xamarin:安卓通过“第三发应用打开”实现文件跨应用传输
  7. php 语义解析,[扩展推荐] PHP 语义化版本(SemVer)辅助库
  8. 【学习笔记】【OC语言】继承
  9. EXCEL 连接符的使用
  10. 免费下载!阿里云重磅发布《云网络白皮书》,开启云网络3.0时代
  11. UCOSII系统移植详解
  12. Peer-to-Peer Sockets 工程入门
  13. android之ExoPlayer探索
  14. 仿滴滴打车时间选择器开始结束时间
  15. 大神李沐被曝离职!投身大模型创业,GitHub项目已开
  16. java 可重复map_map的键值可以重复吗
  17. 模电——磁珠的前世今生
  18. 林锐的《软件工程思想》妙语录
  19. Python爬虫的源码
  20. 获取服务器信息是指什么意思,获取服务器信息是指

热门文章

  1. JAVA小乌龟游泳_描写乌龟游泳的作文
  2. matlab如何调整顺时针逆时针,关于算法:确定线段的方向是顺时针还是逆时针
  3. CentOS 6.5 CentOS 7 rpm安装ftp服务端与ftp客户端
  4. python爬虫--爬取小猪网的租房信息
  5. 一分钟详解智能快递柜电子锁结构
  6. S5PV210芯片的DRAM控制器介绍、初始化DDR的流程分析
  7. Datawhale组队学习周报(第034周)
  8. 树莓派 pico pio 可编程io
  9. PCIe学习(一):PCIe基础及生成PIO例程分析
  10. win10企业版跟win10家庭版有啥区别,win10系统各版本区别