当前位置: 代码迷 >> J2SE >> java swing设置office2003皮肤将导致JToolBar左右灰白两色,十分难看(xp系统,经典主题),该怎么解决
  详细解决方案

java swing设置office2003皮肤将导致JToolBar左右灰白两色,十分难看(xp系统,经典主题),该怎么解决

热度:89   发布时间:2016-04-24 01:14:36.0
java swing设置office2003皮肤将导致JToolBar左右灰白两色,十分难看(xp系统,经典主题)
Java code
package test;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Graphics2D;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JToolBar;import javax.swing.SwingUtilities;import javax.swing.UIManager;public class ToolBarDemo extends JToolBar {    private static final long serialVersionUID = 1L;    public ToolBarDemo() {        super();        this.setLayout(new FlowLayout(FlowLayout.LEFT));        loadButton();    }    public void loadButton() {        addButton("/images/open.gif", "");    }    private void addButton(String url, String tip) {        MyButton button = new MyButton();        button.setPreferredSize(new Dimension(30, 30));        button.setIcon(new ImageIcon(this.getClass().getResource(url)));        button.setToolTipText(tip);        this.add(button);    }    class MyButton extends JButton {        private static final long serialVersionUID = 39082560987930759L;        @Override        protected void paintComponent(Graphics g) {            Graphics2D g2d = (Graphics2D) g.create();            int h = getHeight();            int w = getWidth();            if (getModel().isPressed()) {                g2d.drawRect(6, 6, w - 12, h - 12);                g2d.dispose();            }            g2d.drawRect(0, 0, w - 1, h - 1);            g2d.dispose();            super.paintComponent(g);        }    }    public static void main(String[] args) {        JFrame frame = new JFrame();        frame.add(new ToolBarDemo(), BorderLayout.NORTH);        setSkin(frame);        frame.pack();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setVisible(true);    }    private static void setSkin(JFrame frame) {        try {            UIManager                    .setLookAndFeel("org.fife.plaf.Office2003.Office2003LookAndFeel");            SwingUtilities.updateComponentTreeUI(frame);        } catch (Exception ex) {            System.err.println("皮肤设置有错误!");            return;        }    }}



请大师指教解决两色的问题。



 

------解决方案--------------------
推荐楼主用Substance,有很多皮肤可以用 http://download.csdn.net/detail/gg3600/1800257
  相关解决方案