2012-04-29 5 views
2

스윙을 사용하여 마법사를 만들고 싶습니다. 나는 JOptionPane이 마법사처럼 작동한다는 것을 알아 차렸다. 입력의 양과 구성되는 방식 만 제한적이다.마법사 스윙 만들기

JOptionPane이 필수 입력이 제공되고 마지막 값을 반환하기 전에 오른쪽 버튼을 누를 때까지 JOptionPane이 "대기"하는 방법을 알고 있습니까?

JOptionPane을 사용하여 마법사의 일반적인 cardLayout을 생성하는 방법을 아는 사람이 있습니까?

+2

http://stackoverflow.com/questions/4534917/how-to-create-a-java-wizard-dialog 사용 가능 – Robin

+0

'CardLayout'의 대안으로'JTabbedPane'을 고려하십시오. – trashgod

답변

1

"대기 중"이란 무엇입니까? 버튼을 누를 때까지 실행을 막는 의미에서 "대기"를 의미합니까? OK의 버튼을 누를 때

while(block) { 
    Thread.sleep(500); 
} 

을 그리고 당신의 대화 세트 block = false; : 그렇다면,이 같은 것이 많은 솔루션 있지만, 가장 쉬운 중 하나. 이를위한보다 정교한 솔루션이 있습니다. 이것은 단지 예일뿐입니다.

모든 필드의 의미로 "대기"를 의미하는 경우 마지막 필드를 편집 한 경우 OK 단추를 사용하도록 모든 필드에 대한 수신기를 쉽게 구현할 수 있습니다.

JDialog의 소스 코드를 살펴볼 수 있습니다. here. 차단 부분은 수퍼 클래스의 show() 메서드로 수행됩니다. Dialoghere.

팁 : 처음부터 여러 페이지 마법사를 만들지 마시고 아무것도 막지 마세요. 일반적으로 더 많은 문제가 발생합니다. 대신 here과 같은 자습서를 따르십시오. Dialog를 마법사의 기초로 사용하는 방법을 설명합니다.

5

JOptionPane에 임의의 콘텐츠를 추가 할 수 있습니다 (here). 그 내용은 here과 같이 CardLayout을 갖는 패널이 될 수 있습니다. JOptionPane.OK_CANCEL_OPTION이 주어지면 JOptionPane은 버튼을 클릭 할 때까지 대기합니다. 결과가 JOptionPane.OK_OPTION이면 필요에 따라 카드의 내용을 검토 할 수 있습니다.

4

마법사의 화면을 바꿀 수있는 JDialogCardLayout의 모달이 필요하다고 생각합니다. JDialog이 보이지 않으면 상태를 가져 와서 계속할 방법을 결정할 수 있습니다.

관련 문제