前段时间要求做一个项目,项目比较简单,项目要求是:1、从客户端读取指定目录、格式(.xml)的文件,然后传给服务器;2、做成客户端形式。
client端写好了,server端的代码是从网上借鉴的,后来才做成窗口形式。功能不是很完美,有些bug尚未解决,希望大家多多指正。下面我会把主要代码贴出来给大家看看。
client端的编写过程:
首先是设计界面,界面也比较简洁,一个主窗口、一个功能配置窗口
这个说明一下,这个窗口样式是采用SynthLookAndFeel的方式。用到了开源的beautyeye样式,大家可以在网上搜索下载。
这里有个注意的地方:beautyeye默认的样式看起来相当漂亮了,但是可能不太符合我的要求,所以根据作者的文档修改了下
//隐藏“设置”按钮
UIManager.put("RootPane.setupButtonVisible", false);
//设置本属性将改变窗口边框样式定义
BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.translucencySmallShadow;
//BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.translucencyAppleLike;//默认样式
//加载Beauty Eye的外观,如果不需要其他设置的话,直接写这句话就OK了,其他都可以不用写
BeautyEyeLNFHelper.launchBeautyEyeLNF();
//关闭窗口在不活动时的半透明效果
BeautyEyeLNFHelper.translucencyAtFrameInactive = false;
上面代码加到布局之前。
还有种方法可以加载,效果跟上面差不多,区别在于上面的判断了系统兼容问题,可以处理更多的系统,如linux。
try {
// 使用配置文件创建窗口皮肤
SynthLookAndFeel synth = new SynthLookAndFeel();
/**
//加载自定义皮肤文件
InputStream is = clazz.getResourceAsStream("window.xml");
if (is == null) {
System.err.println("Unable to find theme configuration");
System.exit(0);
}
synth.load(is, clazz);
*/
//UIManager.put("swing.boldMetal", Boolean.FALSE);//修改皮肤
//UIManager.setLookAndFeel(synth);//自定义风格,需要编写皮肤文件。如上面的window.xml然后加载
//UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//自带的其他风格
//UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");//Windows风格
//UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel") ; //Mac风格
//UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel") ;//Java默认风格 dowsLookAndFeel");
UIManager.setLookAndFeel("org.jb2011.lnf.beautyeye.BeautyEyeLookAndFeelWin");//BeautyEye风格
this.init();//初始化主窗口
} catch (Exception e) {
e.printStackTrace();
System.exit(0);//报错程序退出
}
自定义皮肤文件window.xml代码,仅供参考,本项目没有使用到,网上的教程比较少,做的比较难看,所以使用现有的beautyeye皮肤样式,如果大家喜欢折腾可以试试:
布局类的代码如下:
ImageIcon icon=new ImageIcon(clazz.getResource("icon.jpg"));
mainFrame = new JFrame("设备