zoukankan      html  css  js  c++  java
  • 【GUI】一、Swing外观框架BeautyEye使用

    一、Swing外观框架BeautyEye使用

    1.1 导包

    BeautyEye.jar

    1.2 使用BeautyEye L&F

    public static void main(String[] args) {
    
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				// 国人牛逼主题,值得学习
    				// 初始化字体
    				InitGlobalFont(new Font("微软雅黑", Font.PLAIN, 13));
    				// 设置主题为BeautyEye
    				try {
    					org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    				new SwingDemo();
    			}
    		});
    	}
    

    1.2.1 如何定义窗口边框类型

    public static void main(String[] args){
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try{
                    // 设置本属性将改变窗口边框样式定义
                    BeautyEyeLNFHelper.frameBorderStyle = BeaytyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
                    org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
                } catch(Exception e){
                    // TODO exception
                } 
            }
        })
    }
    

    有几种窗口边框类型

    序号 窗口边框类型 代码 BeautyEye中默认使用
    1 系统默认边框 osLookAndFeelDecorated
    2 强立体感半透明边框 translucencyAppleLike java1.6及更高版本
    3 弱立体感半透明边框 translucencySmallShadow
    4 普通不透明边框 generalNoTranslucencyShadow java1.5版本时

    1.2.2 如何使用不同颜色的按钮

    public JButton button;
    
    序号 代码
    1 button.setUI(new BEButton().setNormalColor(NormalColor.normal));
    2 button.setUI(new BEButton().setNormalColor(NormalColor.green));
    3 button.setUI(new BEButton().setNormalColor(NormalColor.lightBlue));
    4 button.setUI(new BEButton().setNormalColor(NormalColor.blue));
    4 button.setUI(new BEButton().setNormalColor(NormalColor.red));

    1.2.3 如何隐藏“设置”按钮

    说明: 该按钮目前仅作为演示窗口标题按钮的自定义能力之用,未来将开放自定义功能,目前可以选择隐藏之。

    UIManager.put("RootPane.setupButtonVisible",false);
    

    1.2.4 如何开启/关闭窗口在不活动时的半透明效果

    说明: 设置此开关量为false即表示关闭之,BeautyEye LNF中默认是true。

    BeautyEyeLNFHelper.translucencyAtFrameInactive = true;
    

    1.2.5 怎样让JToolBar的UI不使用渐变图片而使用传统的纯色来填充背景

    方法一:设置属性即可:true表示使用ToolBar.background颜色实现纯色填充背景,BeautyEye中此属性默认是false

    UIManager.put("ToolBar.isPaintPlainBackground", Boolean.TRUE);
    

    方法二:使用ClientProperty单独设置控制每个toolbar:true表示使用ToolBar.background颜色实现纯色填充弄背景,BeautyEye中此属性是false

    JToolBar jToolBar;
    jToolBar.putClientProperty("ToolBar.isPaintPlainBackground",Boolean.TRUE);
    

    说明: 方法二可以单独控制每一个JToolBar组件,而方法一是全局属性,方法二的优先级高于方法一。

    1.2.6 如何自定义JToolBar UI的border

    @since v3.4

    加入以下代码,使用你自己的border:

    // 自定义JToolBar UI的border
    Border bd = new ToolBarBorder(
        UIManager.getColor("ToolBar.shadow"),//Floatable 时触点的颜色
        UIManager.getColor("TooBar.highlight"),//Floatable时触点的阴影颜色
        new Insets(20,20,20,20)//上,左,下,右
    );
    UIManager.put("ToolBar.border", new BorderUIResource(bd));
    

    说明: 以上代码必须在 ++“BeautyEyeLNFHelper.lauchBeautyEyeLNF();”++ 之后执行方能生效。

    1.2.7 如何设置BEautyEye外观下JTabbedPane选项卡的左缩进

    //改变InsetsUIResource参数的值即可实现
    UIManager.put("TabbedPane.tabAreaInsets",new InsetsUIResource(3, 20, 2, 20));
    

    说明: 以上代码必须在 ++“BeautyEyeLNFHelper.lauchBeautyEyeLNF();”++ 之后执行方能生效。

    1.2.8 如何调置窗体背景全透明并完全隐藏一个窗体的标题栏

    在你的窗体被SetVisible(true)前调用一下代码即可:

    //set frame full transparent
    frame.setUndercorated(true);
    AWTUtilities.setWindowOpaque(frame,false);
    frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
    

    说明: 以上代码适用于所有处于非系统窗体标题栏的情况。包括官方MetalLookAndFeel外观等。

    1.3 UIManager类的简单使用

    让swing窗体变得更加漂亮的代码,该代码的作用是让swing界面变得和当前系统一样,如果是windows8就变得和windows8一样漂亮。

    如果是xp同样原理。
    代码使用方法,添加到任意一个函数里面都可以,但是要调用该函数,建议放在构造函数里面

    try {
    	UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (ClassNotFoundException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
    } catch (InstantiationException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
    } catch (IllegalAccessException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
    } catch (UnsupportedLookAndFeelException e) {
    	// TODO Auto-generated catch block
    	e.printStackTrace();
    }
    
    作者:容一博

    个性签名:我有一个不成熟的想法!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    循环控制Goto、Break、Continue
    linux多进/线程编程(6)——进程间通信之信号
    linux多进/线程编程(5)——进程间通信之mmap
    docker学习笔记(6)——docker场景问题汇总(centos7 由于内核版本低带来的一系列问题,docker彻底卸载,安装、启动日志报错分析)
    c/c++ 日常积累
    broken pipe 报错分析和解决办法
    c/c++ 常见字符串处理函数总结 strlen/sizeof strcpy/memcpy/strncpy strcat/strncat strcmp/strncmp sprintf/sscanf strtok/split/getline atoi/atof/atol
    docker学习笔记(5)——docker场景问题汇总(docker权限问题、docker文件目录、查看docker历史日志文件)
    linux多进/线程编程(4)——进程间通信之pipe和fifo
    linux多进/线程编程(3)——wait、waitpid函数和孤儿、僵尸进程
  • 原文地址:https://www.cnblogs.com/chromer/p/swing025462423.html
Copyright © 2011-2022 走看看