2012-09-10 6 views
3

최근 스윙 (WindowBuilder를 사용하여)으로 자바에서 지뢰 찾기 게임을 만들기 시작했으며, 앱에 옵션이있는 일반 JFrame이있는 일반 JFrame이 있습니다. 창 크기가 조정될 때까지 작동합니다. 그런 다음 메뉴를 클릭하여 표시하면 마우스 버튼을 놓을 때까지만 표시됩니다. 그런 다음 다른 곳을 클릭 한 것처럼 사라집니다. 그러나 키보드 바로 가기로 메뉴에 액세스하면 제대로 작동합니다. 누구든지 문제가있는 곳을 알고 있습니까? 메뉴의 코드 :스윙 JMenu 이상한 연기

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); 

편집 :

나는 몇 가지 실험을했고, 그것이, 내 프로그램에 뭔가로 인한 문제가 아니지만, 자바 또는 대신 일식 밝혀졌다 심지어 때문에 `

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를 사용하고 있습니다. 문제를 해결하기 위해 할 수있는 일이 있습니까?

+0

JFrame 만들기 및 설정 코드를 표시 할 수 있습니까? –

+1

더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오 ('비트 및 조각'과 반대). SSCCE에는 AWT 구성 요소가 포함됩니까? 사용자 정의 렌더링이 필요합니까? –

+3

필자는 생각하지 않지만 [이 HelloWorldSwing] (http://docs.oracle.com/javase/tutorial/displayCode.html?code=http:/)처럼 이벤트 발송 스레드에 스윙 코드를 넣는 것이 좋습니다. /docs.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java). – Istao

답변

0

불행히도 it's an java issue with Cinnamon. 당신은 그것을 피할 수 없다하지 않는 한

  • SWT로 전환 (참조 잘 작동 이클립스 자체), 다른 OS로
  • 스위치 (그들은 계피를 실행하지 않는) 다른 창으로
  • 스위치 매니저.
  • 다른 JVM에이 문제가없는 경우도 있습니다 (다른 OpenJDK 또는 Oracle JVM 또는 이와 유사). 하지 계피이 특정 문제에 -

점은 자바가 리눅스 에서 실행되는 많은 창 관리자를 구분하기로되어 있지만 그들 중 단지 일부를 인식된다 (AFAIK)입니다.

더 슬픈 : 문제는 메이트와 함께 발생하는 것 같습니다.