打造Swing绚丽按钮

我想有人开始抱怨swing的界面不漂亮了,其实不管是windows的UI库还是Swing还是html按钮等等,都是极其普通的,只不过我们结合美工用图片来代替了按钮,诸如html的按钮一样;

 

  • 我们来看一下如何用swing来打造绚丽的按钮;

       这是一个java Swing打造的千千静听风格的音乐播放器;

打造Swing绚丽按钮_第1张图片

 

     我们的图片素材风:

 

   

    

     /** * 根据一些参数快速地构造出按钮来 * 这些按钮从外观上看都是一些特殊的按钮 * @param name 按钮图片的相对地址 * @param cmd 命令 * @param listener 监听器 * @return 按钮 */ public static JButton createJButton(String name, String cmd, ActionListener listener) { Image[] icons = Util.getImages(name, 3); JButton jb = new JButton(); jb.setBorderPainted(false); jb.setFocusPainted(false); jb.setContentAreaFilled(false); jb.setDoubleBuffered(true); jb.setIcon(new ImageIcon(icons[0])); jb.setRolloverIcon(new ImageIcon(icons[1])); jb.setPressedIcon(new ImageIcon(icons[2])); jb.setOpaque(false); jb.setFocusable(false); jb.setActionCommand(cmd); jb.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); jb.addActionListener(listener); return jb; }

 

     下面是打造JToggleButton

 

     /** * 根据一些参数快速地构造出按钮来 * 这些按钮从外观上看都是一些特殊的按钮 * @param name 按钮图片的相对地址 * @param cmd 命令 * @param listener 监听器 * @param selected 是否被选中了 * @return 按钮 */ public static JToggleButton createJToggleButton(String name, String cmd, ActionListener listener, boolean selected) { Image[] icons = Util.getImages(name, 3); JToggleButton jt = new JToggleButton(); jt.setBorder(null); jt.setContentAreaFilled(false); jt.setFocusPainted(false); jt.setDoubleBuffered(true); jt.setIcon(new ImageIcon(icons[0])); jt.setRolloverIcon(new ImageIcon(icons[1])); jt.setSelectedIcon(new ImageIcon(icons[2])); jt.setOpaque(false); jt.setFocusable(false); jt.setActionCommand(cmd); jt.setSelected(selected); jt.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); jt.addActionListener(listener); return jt; }

 

 

    利用这种方式我们可以打造出绚丽的图标和控件来,而且也可以实现换肤!

你可能感兴趣的:(html,swing,String,image,cmd,icons)