私は最近、swing を使用して Java でマインスイーパのようなゲームを作成し始めました (Eclipse WindowBuilder を使用)。アプリには、オプションを含む JMenu を含む通常の JFrame があります。ウィンドウのサイズが変更されるまで、正常に機能します。次に、メニューをクリックして表示すると、マウスボタンを放すまで表示され、他の場所をクリックしたかのように消えます。しかし、キーボード ショートカットでメニューにアクセスすると、正常に動作します。問題がどこにあるのか誰にもわかりませんか?メニューのコード:
JMenu mnHelp = new JMenu( "Help" );
mnHelp.setMnemonic( 'h' );
menuBar.add( mnHelp );
JMenuItem mntmControls = new JMenuItem( "Controls" );
mntmControls.setMnemonic( 'c' );
mntmControls.setIcon( new ImageIcon( Main.class
.getResource( "/org/img/menu-help.png" ) ) );
mnHelp.add( mntmControls );
JSeparator separator_1 = new JSeparator();
mnHelp.add( separator_1 );
JMenuItem mntmAbout = new JMenuItem( "About" );
mntmAbout.setMnemonic( 'g' );
mntmAbout.setIcon( new ImageIcon( Main.class
.getResource( "/org/img/menu-about.png" ) ) );
mnHelp.add( mntmAbout );
編集:
私はいくつかの実験を行いましたが、それは私のプログラムの何かによって引き起こされた問題ではなく、代わりに Java または Eclipse の問題であることがわかりました。
package testpack;
import java.awt.Dimension;
import javax.swing.*;
public class Main {
public static void main( String[] args ) {
JFrame jfr = new JFrame( "" );
jfr.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
JMenuBar jmb = new JMenuBar();
JMenu jm = new JMenu( "Hello" );
JMenuItem jmi = new JMenuItem( "Hi" );
jm.add( jmi );
jmb.add( jm );
jfr.setJMenuBar( jmb );
jfr.setMinimumSize( new Dimension( 400, 400 ) );
jfr.setVisible( true );
}
}
` (これはソース全体です)
Mint Cinnamon 13 と Eclipse 4.2 を使用しています。問題を解決するために私にできることはありますか?