因为做登陆界面的时候发现java本来的界面很难看,比如JButton等,后来在想要怎么美化一下界面,就去问了一下学姐,学姐说可以使用java的皮肤包。后来经过了各种百度以及尝试总算解决了自己的问题。
首先说一下LookAndFeel这个抽象类,java中有继承这个抽象类的类,并用于java中swing组件的UI的实现。下面是官方的一个解释:ComponentUI子类负责提供组件特定于外观的功能。例如,JTree需要ComponentUI子类TreeUI的实现。特定ComponentUI子类的实现由LookAndFeel提供。通过JComponent方法getUIClassID,每个JComponent子类可标识所需的ComponentUI子类。
其实也就是说我们也可以自己实现一个类来继承LookAndFeel类以实现在想想要的UI风格。网上有很多封装好了的皮肤包,只要下载导入之后我们就可以使用了。等以后有时间钻研下自己如何写一个自带风格的LookAndFeel。
2、 下载完整个皮肤包以后就是将其导入到自己的项目中去了。项目右击properties就出来下面整个界面,选择JavaBuildPath,然后选择第三个Libraries,选择右边的Add External JARs就可以添加你下载的皮肤包了。
点击OK。
3、接着就是在你生成swing组件之前,加上下面的一段代码,通常都是在主函数中添加。
javax.swing.UIManager.setLookAndFeel("想要安装的皮肤包的名字");
我的代码如下:
public static void main(String[] args) {
Login login=new Login();
login.showLoginUI();
}
/**
* 一个初始化登录界面的方法
*/
public void showLoginUI(){
try {
javax.swing.UIManager.setLookAndFeel("com.jtattoo.plaf.mcwin.McWinLookAndFeel");
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException | UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
......//省略若干代码
} 我用的是
mcwin这个皮肤包,里面有实现各种swing组件的方法如果你想换一个皮肤包的话,那么就把上面代码中
com.jtattoo.plaf.mcwin.McWinLookAndFeel 改成 包名.*LookAndFeel 就可以了。
是不是很easy,赶紧来尝试一下吧。不过里面也有bug,就是JButton里的JButton.setbackgroundColor不能使用。等下次我再详细说明,今天先到这里,下面两张图是加了之前和加了之后的区别。