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

效果图:

 现在写页面的方式有很多,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”  获取链接,谢谢

                                                                                                         

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值