让窗体边框透明
setUndecorated(true);
让整个窗体变透明包括组件也透明//this.setUndecorated(true);必须写在下面两行代码前
com.sun.awt.AWTUtilities.setWindowOpacity(this,0.5f);//传入的参数是操作的JFrame,与要透明的比例
//只让窗体透明组件透明
com.sun.awt.AWTUtilities.setWindowOpaque(this, false);
让JPanel透明
setOpaque(false)
让按钮透明 //这个方法可以用来不同形状的按钮
jb.setToolTipText("注释");这个是给按钮假如注释
jb.setContentAreaFilled(false);//让按钮的边框透明掉
jb.setBorderPainted(false);//让按钮的body透明掉
//设置按钮的图片,
对于JButton
ImageIcon im=new ImgeIcon("图片路径");/、按照这种方法实例化是哪个对象,传入下面方法
jb.setIcon(im1);//设置原始显示图片
jb.setPressedIcon(im2);//设置点击后的显示图片
jb.setRolloverIcon(im2); //设置鼠标进入时候显示的图片
对于JRadioButton
JRadioButton jb=new JRadioBUtton(new ImageIcon("直线.png"));//原始显示图片
jra.setRolloverIcon(new ImageIcon("直线1.png"));//鼠标进入后显示图片
jra.setSelectedIcon(new ImageIcon("直线2.png"));//选中后显示的图片
/***下面提供两种方法来实现界面到的背景
*********第一种**********
//首先实现一个图片标签
ImageIcon img=new ImageIcon("背景.png");
JLabel jl=new JLabel(img);
//添加图片至Frame的第二层
jf.getLayeredPane().add(jl, new Integer(Integer.MIN_VALUE))
//把标签的大小位置设置为图片刚好填充整个面
jl.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
//将上面的面板设置透明
Container P4=jf.getContentPane();
((JComponent) P4).setOpaque(false);
//如果界面上加载了其他JPanel的话,将其设置透明
jpnorth.setOpaque(false);
jpwest.setOpaque(false);
jpsouth.setOpaque(false);
jpcenter.setOpaque(false);
*********第二种**********
//直接重写JPanel中的paint
JPanel jp=new JPanel(){
//重写paintComponent
public void paintComponent(Graphics g){
ImageIcon im=new ImageIcon("背景.png");
g.drawImage(im.getImage(),0,0,375,295,null);//把图片按照定义的大小画上去
super.paintComponent(g);//调用父类的方法
}
};
jp.setsetOpaque(false)//设置透明,这一步不能少
/**************************************************第二部分********************************************************************/
1,首先介绍JFrame的层次
最底层是 RootPane,
然后是 LayeredPane
再上面就是 ContentPane//JButton,JTextField等组件是加在这一层
最顶层是 GlassPane//这层透明
我们所用的JFrame中的add();方法就同于JFrame.get ContentPane.add();
2,介绍一些窗口小技巧
去掉界面的边框 setUndecorated(true);(这样的话,最大化,最小化方法得自己写了)
做一个圆角的窗体com.sun.awt.AWTUtilities.setWindowShape(jf, new RoundRectangle2D.Double(0.0D, 0.0D, jf.getWidth(), jf.getHeight(), 6.0D, 6.0D));其中的jf参数就是JFrame实例化的对象(首先得去掉边框)
设置边框的风格 UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName());//这个是设置当前系统的边
jf.setLocationRelativeTo(null);//窗体居中显示
jf.setAlwaysOnTop(true);让窗体永远在电脑显示的所有窗体的最前面
3,加载flash文件作为背景
首先你得先下载几个文件http://pan.baidu.com/disk/home#dir/path=%2F%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E8%B5%84%E6%96%99
打开连接后下载DJNativeSwing-SWT-1-0-2-20131010文件
之后打开你得eclips右键点击你的工程文件夹,点击buildpath->confingure path->labiries->add external JARS打开你刚才下载的包,选中所有的JARs,点击ok导入进去
代码如下
1. import javax.swing.JFrame;
2. import javax.swing.UnsupportedLookAndFeelException;
3. import chrriis.common.UIUtils;
4. import chrriis.dj.nativeswing.swtimpl.NativeInterface;
5. import chrriis.dj.nativeswing.swtimpl.components.JFlashPlayer;
6.
7.
8. public class TSet extends JFrame {
9. public void UI()throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException{
10. //***设置窗体
11. this.setSize(380,292);
12. this.setLocationRelativeTo(null);//居中显示
13. this.setDefaultCloseOperation(3);//点击关闭后退出
14. //***创建flash
15. new JFlashPlayer();
16. "afternoon.swf");//载入文件
17. this.add(flash);
18. //this.setUndecorated(true);去掉边框
19. this.setVisible(true);
20. }
21. /**
22. @param args
23. */
24. public static void main(String[] args) {
25. // TODO Auto-generated method stub
26. //下面联行代码是初始化接口
27. UIUtils.setPreferredLookAndFeel();
28. NativeInterface.open();
29. //必须使用线程来调用这个方法
30. new Runnable() {
31. public void run() {
32. try {
33. new TSet().UI();//调用方法
34. catch (ClassNotFoundException e) {
35. // TODO Auto-generated catch block
36. e.printStackTrace();
37. catch (InstantiationException e) {
38. // TODO Auto-generated catch block
39. e.printStackTrace();
40. catch (IllegalAccessException e) {
41. // TODO Auto-generated catch block
42. e.printStackTrace();
43. catch (UnsupportedLookAndFeelException e) {
44. // TODO Auto-generated catch block
45. e.printStackTrace();
46. }
47. }
48. });
49.
50. }
51.
52. }
效果图不好发,发上来是静态的,自己下载一个swf文件测试一下就是