2013-07-09 6 views
0

이 문제에 대해서는 철저히 조사했지만 사용하지 않았습니다. 바라건대 너희들이 나를 도울 수 있기를 바랍니다. 대단히 감사드립니다! ,임의 번호 실행 후 JOptionPane이 멈 춥니 다 (MacBookAir의 Eclipse Kepler, Java 7, Windows 7 64bit 사용)

import javax.swing.JOptionPane; 
public class JOptionPane_Test { 
    public static void main(String[] args){ 
     String userExit="a"; 
     while (userExit!=null){ 
      userExit = JOptionPane.showInputDialog(null, "Message"); 
     } 
    } 
} 

는 단순히 사용자의 응답을 기다리고, 입력 상자를 표시 사용자가 OK 안타 반복하고, 사용자 히트 취소 X 버튼 경우 정지 :

테스트 코드

이하이다. 무작위로 OK (또는 Enter 키)를 누르면 상자가 멈 춥니 다. X 버튼과 아무 것도 안되는 메시지 상자, 입력 필드, 확인 또는 취소 버튼이없는 상자의 프레임 만 표시합니다. 내가 할 수있는 유일한 방법은 X 버튼을 눌러 프로그램을 종료하는 것입니다.

showMessageDialog와 showInputDialog 둘 다 발생합니다. SESSION 2013년 7월 9일 14

: 00 : 00 : 12.666 ----------------------!

내 로그는이 경고를 표시합니다 ------------------------- eclipse.buildId = 4.3.0.I20130605-2000 java.version = 1.7.0_25 java.vendor = Oracle Corporation BootLoader 상수 : OS = win32, ARCH = x86, WS = win32, NL = en_US 프레임 워크 인수 : -product org.eclipse.epp.package.standard.product 명령 줄 인수 : -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.standard.product

ENTRY org.eclipse.egit.ui 2 0 2013-07-09 14 : 00 : 30.147 경고 : EGit에서 Git의 설치 경로 "gitPrefix"를 발견하지 못했습니다. 그러므로 EGit은 기본 Git 설치 디렉토리 아래에 $ {gitPrefix}/etc/gitconfig에 구성 될 수있는 Git 설정을 존중할 수 없습니다. 이 설정 중 가장 중요한 설정은 core.autocrlf입니다. Git for Windows는 기본적으로이 시스템 레벨 구성에서이 매개 변수를 true로 설정합니다. Git 설치 위치는 팀> Git> 구성 환경 설정 페이지의 '시스템 설정'탭에서 구성 할 수 있습니다. 이 경고 은 팀> 자식> 확인 및 경고 환경 설정 페이지에서 해제 할 수 있습니다.

그러나이 경고는 JOptionPane 오류와 관련이없는 것으로 판단됩니다. 아니면 내가 틀렸어?

forum에있는 사람과 정확히 같은 문제가 있다는 것을 알았습니다. 솔루션은 Eclipse가 사용하는 컴파일러를 확인하여 GCJ 대신 Sun의 솔루션인지 확인하는 것이 었습니다. 그러나 내 것은 항상 Sun의 Java 7입니다.

64 및 32 비트 용 Eclipse를 모두 사용해 보았습니다.

어떤 도움을 주셔서 감사합니다!

답변

0

해결책을 찾았습니다 !!! 덕분에 Nick null 부모 구성 요소를 사용하는 대신 프레임에 창을 추가하면 모든 것이 작동합니다! 분명히 JOptionpane 버그입니다.

수정 된 코드 :

import javax.swing.*; 

public class JOptionPane_Test { 
    public static void main(String[] args){ 
     String userExit="a"; 
     JFrame frame = new JFrame(); 
     while (userExit!=null){ 
      userExit = JOptionPane.showInputDialog(frame, "Message"); 
     } 
    } 
}