JAVA 界面美化

来源:互联网 发布:黑马网络qq8134341 编辑:程序博客网 时间:2024/05/02 01:59

JAVA软件界面美化
使用过JAVA软件的人,很多人会对JAVA软件界面的美观不满意,尽管JAVA Swing 推出了JAVA Look And Feel 机制,但这些JAVA可更换机制的外观目前数量实在太有现(网络上可供下载使用的目前大概有30个),开发、定制也不是很容易,难以满足用户快速多变的个性化需求。(据我所知国人当中目前基本没有开发JAVA Look And Feel 的,前段时间本人使用了 SkinLookAndFeel这个皮肤化的JAVA Look And Feel ,l以为日子会好过,不过最终我失望了:(),毕竟同时是专家级的JAVA程序员又是美术大师的人太少了!
总之,Java Look And Feel 虽然好,但开发不易,难以个性化,根本上来说还是没有代码和视图分离。最理想的状态是什么?应该美术设计师设计图形,程序员开发程序,各不相关,互不牵扯,那才是完美的结果。SkinLookAndFee 在某种程度上其实已经做到,但它在代码的机制上实在不怎么样,可移植性差,皮肤配置不容易。。。等等。(哎,本人刚开始对她是很期望了,不过还是验证了“期望大失望大”这句话)
不过SUN就是这么牛X,其JAVA 5.0已经给了我一个很好的答案,使用Synth吧,
Custom UIs are a breeze with the newest Swing look and feel,让你不用写JAVA代码也可以轻松创建漂亮的JAVA界面。
还等什么,让我们开始Synth时尚之旅行,让你的JAVA软件外观更漂亮吧!注意:本文假定你是个已经入门的JAVA开发者,有基本的JAVA GUI开发经历.如果你现在什么都不懂,也想体验Synth,那就留言吧,我会帮你的.:)。
本文的开发环境是Eclipse3.1+JDK5.0,请记得:如果想使用Syth,那么你必须使用jdk5.0。
首先,让我们美化一个基本JDK组件:按钮(JButton)的外观。
1、在Eclipse开发环境中,建立一个JAVA工程,添加一个一个名为MyButton.java类
2、MyButton.java类的代码如下:
package demo.synth;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyButton {
JFrame frame = new JFrame("Test Buttons");
JButton jButton = new JButton("JButton"); // 按钮
public MyButton() {
frame.setLayout(new FlowLayout());
frame.getContentPane().add(jButton);
}
public void show() {
frame.pack();
frame.show();
}
public static void main(String[] args) {
MyButton tb = new MyButton();
tb.show();
}
}
该类可直接运行,运行后效果如下图:
3、在以上代码的main()函数中添加以上代码,使得当前程序应用Synth外观,并且加载了mybutton.xml这个配置文件(相当于CSS样式表),因为这个文件的还没有当前按钮的“样式”设置,所以这时候按牛除了文字,什么都没有。外观处于“空白状态”。
main()函数中添加的设置Synth外观的代码:
SynthLookAndFeel slf = new SynthLookAndFeel();
try {
slf.load(MyButton.class.getResourceAsStream("mybut ton.xml"), MyButton.class);
UIManager.setLookAndFeel(slf);
} catch (Exception e) {
e.printStackTrace();
return;
}
其中,外观样式配置文件mybutton.xml是重点,以后我们的工作就是写这个XML文件的代码,其写法跟CSS样式表基本类似。
mybutton.xml代码:
<synth>
<style id="mybutton">
<state>
<imagePainter method="buttonBackground" path="mybutton.png" sourceInsets="3 6 12 20" paintCenter="true" stretch="true"/>
<insets top="3" left="6" bottom="12" right="20"/>
<font name="Aharoni" size="16"/>
</state>
<property key="Button.margin" type="insets" value="
http://blog.soso.com/qz.q/0 0 5 8"/>
</style>
<bind style="mybutton" type="region" key="Button"/>
</synth>
当前mybutton.xml的代码很简单,只有:<synth/>。这时候程序运行效果如图:(略)

原创粉丝点击