簡體   English   中英

搖擺JMenu表演奇怪

[英]Swing JMenu acting strange

我最近開始在java中使用swing(使用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。 那么我有什么辦法可以解決這個問題嗎?

不幸的是, 它與Cinnamon的java問題 除非你,否則你無法避免它

  • 切換到SWT(參見Eclipse本身,它工作正常),
  • 切換到另一個操作系統(他們不運行Cinnamon),
  • 切換到另一個窗口管理器。
  • 雖然不太可能,但另一個JVM可能沒有這個問題(另一個是OpenJDK,甚至是Oracle JVM或類似的)。

關鍵是(afaik)Java應該區分在Linux中運行的大量窗口管理器, 只識別其中的一些 - 在這個特定問題中不是Cinnamon。

更難過的是:問題似乎也出現在Mate身上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM