`
xumingming64398966@yahoo.com.cn
  • 浏览: 41135 次
文章分类
社区版块
存档分类

两种很好玩的Look And Feel

阅读更多

给大家介绍两种很好玩的Look And Feel:<o:p></o:p>

    NapkinLookAndFeelLiquidLookAndFeel.

效果图分别如下

NapkinLookAndFeel

LiquidLookAndFeel

<o:p></o:p>

 

测试代码如下:

DemoGui.java

import java.awt.BorderLayout;
import java.io.UnsupportedEncodingException;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRootPane;
import javax.swing.JToggleButton;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import net.sourceforge.napkinlaf.NapkinLookAndFeel;

public class DemoGui extends JFrame ...{
    
private JPanel pane = new JPanel( new BorderLayout() );
    
private JPanel panel1 = new JPanel();
    
private JPanel panel2 = new JPanel();
    
private JButton button;
    
private JComboBox combox = new JComboBox();
    
private JCheckBox jcb = new JCheckBox();
    
private JMenuBar menuBar = new JMenuBar();
    
private JMenu menu = new JMenu( "File" );
    
private JMenuItem mi1 = new JMenuItem( "拷贝" );
    
private JMenuItem mi2 = new JMenuItem( "Cut" );
    
private JMenuItem mi3 = new JMenuItem( "Paste" );
    
private JToggleButton jtb = new JToggleButton( "Button1" );
    
private JToggleButton jtb1 = new JToggleButton( "Button2" );
    
private JToggleButton jtb2 = new JToggleButton( "Button3" );
    
private JToggleButton jtb3 = new JToggleButton( "暗流" );
    
    
/**//*private JToggleButton jtb = new JToggleButton( "<html><font color='red'>暗流</font></html>" );
    private JToggleButton jtb1 = new JToggleButton( "<html><font color='green'>暗流</font></html>" );
    private JToggleButton jtb2 = new JToggleButton( "<html><font color='blue'>暗流</font></html>" );
    private JToggleButton jtb3 = new JToggleButton( "<html><font color='yellow'>暗流</font></html>" );
*/


    
static ...{
        
        
try ...{
            UIManager.setLookAndFeel( 
"com.birosoft.liquid.LiquidLookAndFeel" );
            
//UIManager.setLookAndFeel( new NapkinLookAndFeel() );
        }
 catch (UnsupportedLookAndFeelException e1) ...{
            
// TODO Auto-generated catch block
            e1.printStackTrace();
        }
 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();
        }

    }

    
public DemoGui() ...{
        
try ...{
            button 
= new JButton( new String( "Button".getBytes( "ISO-8859-1" )) );
        }
 catch (UnsupportedEncodingException e) ...{
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        mi1.setMnemonic( 
'd' );
        menu.add( mi1 );
        menu.add( mi2 );
        menu.add( mi3 );
        menuBar.add( menu );
        menuBar.add( jtb1 );
        menuBar.add( jtb2 );
        menuBar.add( jtb3 );
        panel1.add( button );
        panel1.add( jcb );
        panel1.add( combox );
        panel1.add( jtb );
        pane.add( panel1, BorderLayout.PAGE_START );
        pane.add( panel2, BorderLayout.PAGE_END );
        
        
this.setJMenuBar( menuBar );
        
this.setContentPane( pane );
        
        
//this.setUndecorated( true );
        
//this.getRootPane().setWindowDecorationStyle( JRootPane.FRAME );
        
        
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        
this.setBounds( 300300600400 );
        
this.setVisible( true );
        
        
    }

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

}

大家看到NapkinLookAndFeel那个图里面有乱码,那是因为NapkinLookAndFeel不支持中文,比较遗憾,我猜想很可能是他使用的字体不支持中文。不过有一种很恶心的方式可以让他支持中文:那就是在所有使用中文的地方都采用html,比如:
 
Private JButton button = new JButton( “<html><font color=’red’>暗流</font></html>” );
不过这样button的字体就不是Napkin的风格了,大家可以试下。
 
还有代码中有这样两行:
 
this.setUndecorated( true );
this.getRootPane().setWindowDecorationStyle( JRootPane.FRAME );
这两行的作用是:不使用默认的decoration,而使用你使用的LookAndFeel类提供的Decoration, 不过不是所有的LookAndFeel都提供decoration, 比如NapkinLookAndFeel就不提供,而LiquidLookAndFeel里面就提供,大家可以把这两行取消注释试一下。
还有一点提醒大家注意,我的测试代码里把
UIManager.setLookAndFeel( "com.birosoft.liquid.LiquidLookAndFeel" );
//UIManager.setLookAndFeel( new NapkinLookAndFeel() );
放在static初始化块里面了,这不是必须的,但是你必须保证把这段代码放在你生成所有的Component/Jcomponent之前,否则LookAndFeel不能生效。
参考资料:
Napkin和Liquid都可以在sourceforge上找的到。

 



分享到:
评论

相关推荐

    java swing Mac风格的LookAndFeel

    Java Swing内置了几种预定义的LookAndFeel,包括Metal(默认的Java LookAndFeel)、Windows以及Motif。然而,对于在Mac操作系统上运行的Java应用,开发者通常希望应用能够具有与原生Mac应用相同的外观和感觉,这就是...

    java Look and feel

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } try { // 更改为Java默认的CrossPlatform Look and Feel UIManager.setLookAndFeel...

    swing皮肤大全(look and feel)

    标签"swing java 皮肤 lookandfeel"进一步明确了这个主题,表明这是关于Java Swing库的皮肤(L&F)相关的资源,适合Java程序员用来改变其桌面应用的外观。 压缩包中的"java皮肤"文件可能是一个包含了各种Look and ...

    lookandfeel.zip

    总结起来,“lookandfeel.zip”可能是一个包含了Java LookAndFeel源代码和工具的压缩包,对于学习和定制Java GUI应用的外观具有很高的价值。开发者可以通过研究和应用这些源码,创造出独特且符合用户喜好的应用程序...

    使用lookandfeel为界面更换皮肤

    Java提供了两种类型的LookAndFeel:系统LookAndFeel和自定义LookAndFeel。系统LookAndFeel会遵循用户的操作系统设定,而自定义LookAndFeel则可以自由设计。 2. **Java的内置LookAndFeel**: Java提供了三种内置的...

    java look and feel

    本文旨在通过深入浅出的方式介绍Java Look and Feel的相关概念和技术,包括MVC(Model-View-Controller)架构、可插入界面样式以及如何创建自定义的LookAndFeel类。 #### 二、MVC架构与Look and Feel的关系 **1. ...

    java_lookandfeel.rar_LookAndFeel_java gui_java look_look and fee

    在Java GUI程序中,LookAndFeel管理组件的显示方式,包括颜色、字体、图标以及交互行为。Java提供了多种内置的LookAndFeel,如跨平台的Metal Look and Feel,Windows Look and Feel,以及Mac OS X的Aqua Look and ...

    lookandfeel(nimrod)

    "Lookandfeel(nimrod)"是一个特定的UI外观库,名为Nimrod,它提供了美观且可定制的界面元素,以提升软件的用户体验。 Nimrod Look and Feel是一款高度可定制的Java Swing组件库,它允许开发者根据自己的需求调整...

    swing lookandfeel

    "swing lookandfeel"这个标题可能指的是一个特定的、美观的L&F实现,可以被导入到Java Swing应用中,以提升其视觉吸引力。 在提供的描述中,我们可以推断这可能是一个包含多个L&F库的压缩包,用户只需将其导入工程...

    LookandFeel皮肤

    a03LooKAndFeel皮肤,超炫超酷

    java中MVC与LookAndFeel类及自创界面ExtraLAF

    在"ExtraLAF.jar"这个文件中,很可能包含了一个自定义的LookAndFeel实现。自创界面,即开发人员根据特定需求设计的独特界面风格,可能包括独特的颜色搭配、控件样式、布局等。在Java中,创建自定义LookAndFeel通常...

    java中MVC与LookAndFeel类及自创界面(更新)

    LookAndFeel是Java提供的一种机制,允许开发者改变应用的外观和感觉,以匹配不同的操作系统或个性化需求。Java提供了几种内置的LookAndFeel,例如Metal(默认),Windows,Motif等。开发者可以通过UIManager类的set...

    substance-lookAndFeel

    java swing 中通过UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel()); JFrame.setDefaultLookAndFeelDecorated(true); //设置主题 SubstanceLookAndFeel.setCurrentTheme(new ...

    超级漂亮的LookAndFeel

    超级漂亮的LookAndFeel超

    LookAndFeel换肤

    在Java Swing应用开发中,"LookAndFeel换肤"是一项重要的功能,它允许开发者为应用程序提供不同的视觉样式,以满足用户对个性化界面的需求。Look and Feel(简称LAF)是Java提供的一个核心特性,使得应用程序可以...

    java 连接数据库 lookandfeel java网络编程

    要改变应用程序的Look and Feel,可以使用`UIManager.setLookAndFeel()`方法,传入对应风格的字符串。然后,通过`SwingUtilities.updateComponentTreeUI(Component c)`方法来更新已存在的组件树,使得改变立即生效。...

    JGoodies Look and Feel

    在Java中,`LookAndFeel` 是一种机制,允许开发者改变应用程序的默认外观和交互方式,以适应不同的操作系统或个人喜好。JGoodies Look and Feel 提供了多种预定义的主题,如Plastic、Plastic3D和PlasticXPI,这些...

    Java Look And Feel Design Guidlines

    Java Look and Feel Design Guidelines. JAVA界面设计技术(换肤术)

    Quaqua Look and Feel 5.01

    Quaqua Look and Feel (Quaqua)是一款为Mac OS X编写的Apple人性化界面向导(AHIG)。报道中指出,新版本中增加了调色盘和粉笔面板,改进了色彩精度。此外还修补了一些bug。

    Java Look and Feel.doc

    2. **LookAndFeel class**: 表示一种特定的用户界面风格。Java提供了javax.swing.LookAndFeel抽象类,它是所有LookAndFeel实现的基础。开发者可以继承此类并实现自己的LookAndFeel。 3. **UIDefaults class**: 存储...

Global site tag (gtag.js) - Google Analytics