JAVA观感器

在JAVA的GUI开发中,Swing组件使用的是默认的皮肤,我们可以通过设置观感器来更改默认的皮肤。

如图所示,这就是JAVA默认观感器(XP系统)现实的效果。这一篇博客将通过示例代码为大家演示如何更改默认的观感器。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;

/**
 * 观感器示例
 *
 * @author jianggujin
 *
 */
public class LookAndFeelDemo extends JFrame implements ActionListener
{
   public LookAndFeelDemo()
   {
      super("SwingDemo");

      JMenuBar menuBar = new JMenuBar();
      JMenu skin = new JMenu("皮肤");
      // 获得所有已安装观感器
      LookAndFeelInfo[] lookAndFeelInfos = UIManager.getInstalledLookAndFeels();
      // 遍历观感器并添加菜单项
      for (LookAndFeelInfo lookAndFeelInfo : lookAndFeelInfos)
      {
         JMenuItem item = new JMenuItem(lookAndFeelInfo.getName());
         item.setActionCommand(lookAndFeelInfo.getClassName());
         item.addActionListener(this);
         skin.add(item);
      }
      menuBar.add(skin);
      setJMenuBar(menuBar);

      JPanel root = new JPanel();
      root.add(new JButton("我是JButton"));
      root.add(new JToggleButton("我是JToggleButton"));
      root.add(new JLabel("我是JLabel"));
      root.add(new JCheckBox("我是JCheckBox"));
      root.add(new JRadioButton("我是JRadioButton"));
      root.add(new JTextField("我是JTextField"));
      root.add(new JPasswordField("我是JPasswordField"));
      root.add(new JTextArea("我是JTextArea"));
      add(root);
      setSize(400, 300);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setVisible(true);
   }

   public static void main(String[] args)
   {
      new LookAndFeelDemo();
   }

   @Override
   public void actionPerformed(ActionEvent e)
   {
      JMenuItem item = (JMenuItem) e.getSource();
      try
      {
         UIManager.setLookAndFeel(item.getActionCommand());
         SwingUtilities.updateComponentTreeUI(this);
      }
      catch (Exception e2)
      {
         e2.printStackTrace();
      }

   }
}

运行效果:

时间: 2024-10-29 07:39:01

JAVA观感器的相关文章

实现高性能Java解析器

备注: 本篇文章是关于先前相同主题文章的最新版本.先前文章主要介绍创建高性能解析器的一些要点,但它吸收了读者的一部分批评建议.原来的文章进行了全面修订,并补充了相对完整的代码.我们希望你喜欢本次更新. 如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析器存在缺陷,或者开源解析器项目被取消诸如此类原因.上述原因都没有你将需要实现你自己的解析器的事实重

java构建器初始化

可考虑用构建器执行初始化进程.这样便可在编程时获得更大的灵活程度,因为我们可以在运行期调用方法和采取行动,从而"现场"决定初始化值.但要注意这样一件事情:不可妨碍自动初始化的进行,它在构建器进入之前就会发生.因此,假如使用下述代码: class Counter { int i; Counter() { i = 7; } // . . . 那么i首先会初始化成零,然后变成7.对于所有基本类型以及对象句柄,这种情况都是成立的,其中包括在定义时已进行了明确初始化的那些一些.考虑到这个原因,编

java视频播放器怎么实现一个组件的全屏

问题描述 java视频播放器怎么实现一个组件的全屏 这是我做的播放器 我想让中间黑色屏幕实现无边框的全屏播放 我的思路是让上边 右边 和下边的三部分不可见setVisible(false) 然后效果如下 基本实现了全屏 但不能去掉边框 setUndecorated方法可以不显示边框但是他使用的前提是在窗口没有执行任何显示的前提下才能实现 请问 有没有窗体已经显示出来的情况下 能够去掉边框的方法...... 解决方案 已经解决了,还是通过setUndecorated方法,用两个窗口实现 解决方案二

Java装饰器设计模式初探_java

本篇随笔主要介绍用Java实现简单的装饰器设计模式: 先来看一下装饰器设计模式的类图: 从图中可以看到,我们可以装饰Component接口的任何实现类,而这些实现类也包括了装饰器本身,装饰器本身也可以再被装饰. 下面是用Java实现的简单的装饰器设计模式,提供的是从基本的加入咖啡入手,可以继续加入牛奶,巧克力,糖的装饰器系统. interface Component { void method(); } class Coffee implements Component { @Override

一篇文章读懂Java类加载器

Java类加载器算是一个老生常谈的问题,大多Java工程师也都对其中的知识点倒背如流,最近在看源码的时候发现有一些细节的地方理解还是比较模糊,正好写一篇文章梳理一下. 关于Java类加载器的知识,网上一搜一大片,我自己也看过很多文档,博客.资料虽然很多,但还是希望通过本文尽量写出一些自己的理解,自己的东西.如果只是重复别人写的内容那就失去写作的意义了. 类加载器结构 类加载器结构 名称解释: 根类加载器,也叫引导类加载器.启动类加载器.由于它不属于Java类库,这里就不说它对应的类名了,很多人喜

视频播放器的源码求教-如何写一个完整的java视频播放器?诚望高手们指点!

问题描述 如何写一个完整的java视频播放器?诚望高手们指点! 高手们,你们好.我在网上搜了几个java视频播放器的代码,带是均不能正常运行.我不知道是怎么回事,我想请教下你们,同时如果你们有完整的java视频播放器代码,能否提供一份?望指导! 我的代码为: package com.bird.jmf; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import javax.swin

JAVA混淆器设计

问题描述 我的毕业设计题目是JAVA混淆器,有很多问题希望大家帮忙解答一下,谢谢!1做JAVA混淆器需要重点了解哪些知识?2在分析完CLASSFILE文件结构之后,具体应该使用什么样的方法来进行代码混淆?3为什么混淆后的代码仍然可以正常运行? 解决方案 解决方案二:现在混淆器一般是把变量名和方法名改变使其反编译后可读性很差,几乎不可读.高点的混淆器做到第一步后还把其中一些语句变成虚拟机语言.混淆是可以正常运行的混淆的作用只是反编译后可读性差.可以自己改变一下class文件格式自己写classlo

Java ReStructuredText 1.4发布 Java解析器和转换器

reStructuredText是一个Java解析器和转换器.用于解析reStructuredText和生成XHTML,xdoc和DocBook文件,或可以使用自己的XSL文件. Java ReStructuredText 1.4版本添加了联机图像放到account的新功能,修复了多个错误. 下载地址: http://www.nuiton.org/attachments/download/518/jrst-1.4-deps.zip http://www.nuiton.org/attachment

java视频播放器

问题描述 我需要做一个java视频播放器,可是没有一点头绪,大虾们指点一二....谢谢了 解决方案 解决方案二:窗口触发事件看看关于JMF的东西解决方案三:JMF解决方案四:可以说的详细点吗?解决方案五:有问题找百度 很方便的解决方案六:引用楼主kevin131的回复: 我需要做一个java视频播放器,可是没有一点头绪,大虾们指点一二....谢谢了 还是看一下我的建议吧:视频聊天室..........客户端................cha...................AVRecei