Java的LookAndFeel切换问题,急!

来源:百度知道 编辑:UC知道 时间:2024/09/20 18:39:53
做一个swing的界面,用了jtattoo的一个LookAndFeel的包。

在里面用一个JComboBox来切换界面,切换后用了
SwingUtilities.updateComponentTreeUI(this);来更新LookAndFeel。

但是切换的过程中,如果每次选择的都是没有用过的LookAndFeel,则显示正常;一旦选择了用的的LookAndFeel,边框就无法完全更新。

求教高手!!!

部分代码如下:

// ComboBox的响应方法
private void style_CboxActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String name = (String) style_Cbox.getSelectedItem();
updateStyle(name);
pack();
}

// 更新LookAndFeel的方法
public void updateStyle(String name) {
try {
//UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
if (name == "Aluminium") {
UIManager.setLookAndFeel(aluminium);
} else if (name == "Aero") {
UIManager.setLookAndFeel(aero);
} else if (name == "McWin") {
UIManager.setLookAndFeel(mcwin);
} else if (name == "

观感设计!
这个在java里不经常碰到。因为基本上不会有人用java做桌面应用程序的开发。
从你的表述中:
“如果每次选择的都是没有用过的LookAndFeel,则显示正常;一旦选择了用的的LookAndFeel,边框就无法完全更新。”

试着在每次切换前,把观感设置成默认。比如:

if (name == "Aluminium") {
UIManager.setLookAndFeel(getDefaults());
UIManager.setLookAndFeel(aluminium);
} else if (name == "Aero") {
………………
下同
}

让它先从默认的观感转到新的观感。