Nimbusが何らかの形でVirtual keysと競合するのはなぜだろうと思っていました。以下に作成したサンプルを確認してください。
public class buttontest implements ActionListener {
JMenuItem close =new JMenuItem("Close");
public static void main (String[] args){
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (UnsupportedLookAndFeelException e) {
// handle exception
} catch (ClassNotFoundException e) {
// handle exception
} catch (InstantiationException e) {
// handle exception
} catch (IllegalAccessException e) {
// handle exception
}
}
public buttontest(){
JFrame test = new JFrame();
JMenuBar bar=new JMenuBar();
JMenu file=new JMenu("File");
close.setMnemonic(KeyEvent.VK_C);
file.setMnemonic(KeyEvent.VK_F);
test.setExtendedState(test.getExtendedState() | test.MAXIMIZED_BOTH); // Maximized Window or setSize(getMaximumSize())
test.setDefaultCloseOperation(1);
bar.add(file);
file.add(close);
test.setJMenuBar(bar);
test.setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==close){
System.exit(0);
}
}
}
書かれているように、仮想キーを使用することができます。Alt F は [ファイル] メニューを開くために機能しますが、Alt C はアプリケーションを閉じません。逆に、Nimbus コードにコメントを付けると、両方の仮想キーが機能します。
私はこの「バグ」(または、私が気付いていない何か間違ったことをしている可能性があります)に関して1つの調査を行いましたが、今まで何も見つかりませんでした. 誰かがこれを通過したことがありますか?