2012-09-28 3 views
1

Jar 파일을 내보내는 방법을 여러 번 접했습니다. 현재 프로젝트로는 완벽하게 내보내기 및 실행할 수 있었지만로드 할 때마다 프로젝트에 다른 JFrame을 추가하자마자 JFrame이로드되지 않고 대신 JAR이 고정됩니다. 충돌하지 않거나 단순히 멈추지 않습니다. 일반적인 문제입니까? 문제를 해결하기 위해 무엇을 할 수 있습니까?여러 JFrames로 JAR 내보내기

우선 JFrame의

JFrame frame = new JFrame(); 

public Launcher(int id) { 
    try { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    frame.setUndecorated(true); 
    frame.setTitle("Launcher"); 
    frame.setSize(new Dimension(width, height)); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.add(this); 
    frame.setLocationRelativeTo(null); 
    frame.setResizable(false); 
    frame.setVisible(true); 
    window.setLayout(null); 

public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() 
    { 
     public void run() 
     { 
     new Launcher(0); 
     } 
    }); 
    //new Launcher(0); 
} 
0 EventQueue의

WITH 열 번째 코드 JFrame의

if (Input.Clicked == 1) { 
    config.loadConfig("res/Config/config.xml"); 
    frame.dispose(); 
    new NewLauncher(); 

} 

코드 NewLauncher()에 대한

public NewLauncher() { 

    Display app = new Display(); 
    JFrame frame = new JFrame(); 
    frame.add(app); 
    frame.setSize(Display.getGameWidth(), Display.getGameHeight()); 
    frame.getContentPane(); 
    frame.setTitle(Display.TITLE); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 
    frame.setResizable(false); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    game.start(); 
    stopMenuThread(); 
} 

EDIT

코드가 디버거와 컴파일러에서 제대로 실행됩니다. 아직도 항아리에서 뛰지는 않을거야. 내가 제대로하고 있니?

+0

제발. 항아리 측면에서 효과가 있습니까? – MadProgrammer

+0

새 JFrame의 코드는 무엇입니까? 그래, 컴파일러에서 완벽하게 실행되는 동안 '디버깅' – ZachBamberger

+0

코드로 편집하기 만하면됩니다. – ZachBamberger

답변

1

당신이 자고 또는 잠금에서 대기, 발송 쓰레드를 포함하여 이벤트에 대한 작업을 소비하는 모든 시간을하고 있지 않은지 확인 스레드에게

EventQueue.invokeLater(new Runnable() { 
// Run your code here ... 
}); 

이벤트 디스패치의 UI를 실행하고 있는지 확인

+0

그러면 첫 번째 JFrame 클래스가 올바르지 않을까요? – ZachBamberger

+0

EDT – MadProgrammer

+0

바로 편집 된 코드에서 작동한다는 것을 보증 할 수없는 프레임을 만들기 전에 어디든 찾아 볼 수 있습니다. 죄송합니다. 이전에는 EventQueue를 사용 해본 적이 없으며 제대로 사용하는 방법을 많이 찾을 수 없습니다. 올바르게 사용하고 있습니까? – ZachBamberger

관련 문제