我在点击按钮更改外观时,使用
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
SwingUtilities.updateComponentTreeUI(frame)时,
ChartPanel就更改不了,其它的都可以更改掉外观,ChartPanel是JPanel的子类,它的updateUI方法里面继承了
super.updateUI(); 就是更改不了,我重启应用程序后,外观就可以更改,请问是什么原因? 只有8分,全给了
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
SwingUtilities.updateComponentTreeUI(frame)时,
ChartPanel就更改不了,其它的都可以更改掉外观,ChartPanel是JPanel的子类,它的updateUI方法里面继承了
super.updateUI(); 就是更改不了,我重启应用程序后,外观就可以更改,请问是什么原因? 只有8分,全给了
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());这条语句不是取系统默认的lookAndFeel了吗?我的意思是我有几个单选项,选择不同的单选项,就可以动态的更新应用程序的外观
这个是要看你的UIManager.setLookAndFeel方法执行在什么地方的!如果你执行在一个UI构件已构造后,那么那个构件就不会更改外观.所以建议这个方法执行在程序的最前面.这个在构造后也可以改的,执行这条语句SwingUtilities.updateComponentTreeUI(frame)时,它就会调用每个组件的updateUI()方法的,就可以更改掉外观
--------------------------------------------------------------
是不是你重载了某些函数,忘记了调用super.method()
把这个方法注释掉,看一下效果.
updateUI方法注释掉,我也试过了,没用的,还是一样的