免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1766 | 回复: 0
打印 上一主题 下一主题

swing更改外观。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-05 20:03 |只看该作者 |倒序浏览
我自己的毕业项目是用swing做的,天天看着默认的Metal风格的样式实在审美疲劳,烦死了。决定改几个外观,也好改变心情好让我继续开发。

记录一下代码。哈哈。


    // style manager.
    private void styleManage(JMenuBar menubar) {
        // TODO Auto-generated method stub
        JMenu styleMenu = new JMenu("Style");
        ButtonGroup bgroup = new ButtonGroup();
        String styleNow = UIManager.getLookAndFeel().getName();
        for (Iterator it = STYLE.keySet().iterator(); it.hasNext();) {
            // String styleName = STYLE.getProperty((String) it.next());
            final String radioItemTitle = (String) it.next();
            JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
                    radioItemTitle);
            styleMenu.add(radioItem);
            bgroup.add(radioItem);
            if (styleNow.equals(radioItemTitle)) {
                radioItem.setSelected(true);
            }
            radioItem.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    // System.err.println(e.getSource());
                    String styleNow = UIManager.getLookAndFeel().getName();                    
                    TraceClientGUIJFrame mainFrame = TraceClientGUIJFrame.this;
                    if (styleNow.equals(radioItemTitle) == false) {
                        try {
                            UIManager.setLookAndFeel(mainFrame.STYLE
                                    .getProperty(radioItemTitle));
                        } catch (Exception ex) {
                            ex.printStackTrace();
                            JOptionPane.showMessageDialog(mainFrame, ex
                                    .getClass().getName());
                            return;
                        }
                        SwingUtilities.updateComponentTreeUI(mainFrame);
                    }
                }
            });
        }
        menubar.add(styleMenu);
    }
    private static Properties STYLE = new Properties();
    static {
        // first we need add system default LookAndFeels.
        UIManager.LookAndFeelInfo[] infos = UIManager
                .getInstalledLookAndFeels();
        for (int i = 0; i  infos.length; i++) {
            STYLE.setProperty(infos.getName(), infos.getClassName());
        }
        // then we add third-party LookAndFeels. if they exist.
    };
   

这段代码,只记录了怎么在系统默认支持的皮肤中切换,对于怎么加入第三方的皮肤外观还不是很清楚。但愿就是添加jar包就可以了。但是可能没这么简单。以后再学。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/105041/showart_2112077.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP