我遇到了不錯的Joonas Pulakka答案,因爲「UIManager lookandFeel」被忽略。
我發現下面的好的技巧上http://tips4java.wordpress.com/2010/09/12/keeping-menus-open/
的一點是它已被關閉後,立刻重新打開菜單,它是無形的,保持應用程序的外觀和行爲。
public class StayOpenCBItem extends JCheckBoxMenuItem {
private static MenuElement[] path;
{
getModel().addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (getModel().isArmed() && isShowing()) {
path = MenuSelectionManager.defaultManager().getSelectedPath();
}
}
});
}
public StayOpenCBItem(String text) {
super(text);
}
@Override
public void doClick(int pressTime) {
super.doClick(pressTime);
MenuSelectionManager.defaultManager().setSelectedPath(path);
}
}
我認爲這是一個錯誤,應該由Swing庫作者修復,而不是避免使用替代方法。唯一的問題是,Java開發人員寧願找到解決問題的藉口。 – 2015-03-15 21:57:40