基于AWT、Swing的GUI程序 - 改变观感
本程序通用调用UIManager.getInstalledLookAndFeels()方法来获取本机已安装的所有观感,然后分别创建相应数量的Button,用来动态改变观感。
相关API :
static void
setLookAndFeel(LookAndFeelnewLookAndFeel)
static void
updateComponentTreeUI(Componentc)
static UIManager.LookAndFeelInfo[]
getInstalledLookAndFeels()
执行效果:
代码:
package cn.youthol;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class Main
{/*** author bruce*/public static void main(String[] args){EventQueue.invokeLater(new Runnable(){public void run(){MyFrame frame = new MyFrame("Change LookAndFeel");frame.setDefaultCloseOperation(MyFrame.EXIT_ON_CLOSE);frame.setVisible(true);}});}}/** 框架窗口*/
class MyFrame extends JFrame
{private JPanel btnPanel;/** 构造方法*/public MyFrame(String title){//设置标题super(title);//设置大小setSize(800,600);//创建按钮面板btnPanel = new JPanel();add(btnPanel);//创建ButtonLookAndFeel[] names = getAllLookAndFeels();for(LookAndFeel name : names){createButton(name.name,name.className);}}/** 得到所有观感* LookAndFeel是自定义的类,用来存储观感信息*/private LookAndFeel[] getAllLookAndFeels(){UIManager.LookAndFeelInfo[] infos = UIManager.getInstalledLookAndFeels();LookAndFeel[] lafs = new LookAndFeel[infos.length];for(int i = 0 ; i < lafs.length ; ++i){lafs[i] = new LookAndFeel();}for(int i = 0 ; i < lafs.length ; ++i){System.out.println(i);lafs[i].className = infos[i].getClassName();lafs[i].name = infos[i].getName();}return lafs;}/** 创建Button*/private void createButton(String name,final String UIName){JButton btn = new JButton(name);btnPanel.add(btn);//设置监听器btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){//改变观感try{UIManager.setLookAndFeel(UIName);SwingUtilities.updateComponentTreeUI(MyFrame.this);}catch(Exception ex){ex.printStackTrace();}}});}/** 内部类LookAndFeel* 用来存储观感信息*/private class LookAndFeel{String className; //类名String name; //观感名}
}
基于AWT、Swing的GUI程序 - 改变观感相关推荐
- 用Java开发桌面应用程序(Swing开发GUI程序)
前面学过了面向对象基本概念.面向对象基本特征.Java基本包和API:异常.多线程.IO等. 基本概念 Swing:java中的一个包,负责开发GUI程序 GUI:图形用户界面,一般指可视化桌面系统中 ...
- 基于tkinter模块创建GUI程序(python)
文章目录 前言 一.Tkinter是什么? 二.使用步骤 1.创建应用程序的主窗口对象(根窗口) 2.tkinter根窗口 3.组件拼图 4.Label标签 布局管理系统 5.pack布局管理器 6. ...
- 【java毕业设计】基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码)——雷电游戏
基于java+swing+GUI的雷电游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的雷电游戏GUI设计与实现,文章末尾附有本毕业设计的论文和源码下 ...
- 《Abaqus GUI程序开发指南(Python语言)》——第一章 概述1.1 简单插件实例——创建带孔板有限元模型...
本节书摘来自异步社区<Abaqus GUI程序开发指南(Python语言)>一书中的第1章,第1.1节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区&q ...
- java毕业设计——基于java+Java awt+swing的愤怒的小鸟游戏设计与实现(毕业论文+程序源码)——愤怒的小鸟游戏
基于java+Java awt+swing的愤怒的小鸟游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Java awt+swing的愤怒的小鸟游戏设计与实现,文章末尾附有本毕 ...
- 【java毕业设计】基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码)——俄罗斯方块游戏
基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现,文章末尾 ...
- 【java毕业设计】基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码)——连连看游戏
基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的连连看游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...
- 【java毕业设计】基于java+swing+CS的图书销售管理系统GUI设计与实现(毕业论文+程序源码)——图书销售管理系统
基于java+swing+CS的图书销售管理系统GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+CS的图书销售管理系统GUI设计与实现,文章末尾附有本毕业设计的 ...
- Java使用IntelliJ IDEA创建一个基于Swing的GUI图形化程序,打包发布为jar
1.创建GUI窗体 首先,直接新建一个默认的空的Java模块即可,随便取个名字 之后再src目录下右键,新建,创建一个Swing的GUI窗体,随便取个名字 给主窗体改个名字 到java代码中生成一个窗 ...
最新文章
- Java知识系统回顾整理01基础04操作符07Scanner
- .net 面试题系列文章三(附答案)
- mysql数据库检表_MYSQL数据库检查数据表和修复数据表
- php 获取字符串中的url,php使用正则表达式获取字符串中的URL
- 基于jsp+Spring+mybatis的SSM企业门户网站设计和实现
- 2020过半,程序员“跳槽”还是“卧槽”,你想好了吗?
- 将军令:数据安全平台建设实践 1
- CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告
- 武汉大学计算机专业录取分数线,最新武汉大学专业排名录取分数线
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_1_函数式接口的概念函数式接口的定义...
- 下载laravel框架
- 【金蝶K3】新/老单据转换流程相关表说明(单据转换流程下推老单,钩稽关系可为严格控制)
- Unable to negotiate with port 51732: no matching host key type found. Their offer:
- mysql存储过程 outfile_mysql存储过程 outfile
- 10 分钟搞定 Vim 编辑器常用命令!
- 教育培训行业现状分析
- visual_studio2012、vs2012下载
- C#控件篇 - 图表控件chart - 添加辅助边界线条
- 一切照旧... ...
- 交换机工作原理/模式
热门文章
- 安装mysql后环境变量_环境变量配置2 安装mysql
- android toolbar 颜色渐变,android – 如何使渐变形状留在CollapsingToolbarLayout标题后面...
- appinventor贪吃蛇制作步骤_旋转RGB制作指导
- 精确率、召回率、F1 值、ROC、AUC
- Python助力性能测试——报文批量生成
- 25岁!零基础想转行做软件测试,可以吗?晚是不晚!
- MATLAB 对 提取出的流线 添加颜色
- 神威计算机主板型号,十代酷睿高端型Z490主板曝光 总线规格依旧是PCIe 3.0且USB接口并不支持USB 3.2...
- 在PyCharm环境下使用Jupyter Notebook
- fields and vector spaces