2014-04-29 4 views
-1

다음 방법을 통해 필요한 결과를 얻을 수 있습니다. 문제는 메서드가 호출 될 때 시작 pnlMain은 새 pnlMain이 만들어지고 원본을 대체 할 때까지 계속 표시됩니다. 이 방법의 요점은 새 패널을 만들어 패널을 변경하는 것이지만이 프로세스는 약간의 시간이 걸리므로이 시간 동안 "로드"패널을 표시하려고합니다.Java : 런타임 중 패널 변경

public void changePanel() { 
    remove(pnlMain); 
    add(load); 
    repaint(); 
    pnlMain = new HunterPanel(settings); // HunterPanel extends JPanel 
    remove(load); 
    add(pnlMain); 
    repaint(); 
    pnlMain.requestFocus(); 
} 
+0

패널이 변경되는 동안로드 패널을 추가하는 방법에 대한 질문이 있습니까? – mdewitt

답변

3

올바른 방법 "을 실행하는 동안 패널을 변경하면"당신이보기 사이를 전환 할 수 있도록하는 CardLayout을 사용하는 것입니다. 자세한 내용은 How to Use CardLayout을 참조하십시오. 간단한 예제를 참조하십시오 here

하지만 코드에서 어디가 잘못 될지 알려주기 위해 런타임에 구성 요소를 제거하고 추가하는 경우 revalidate()이 필요합니다. 하지만 귀하의 경우에는 CardLayout으로 가십시오. 당신이 그것을 배우고 나면 당신이 행복해 졌을 것입니다 :-)