2012-10-04 2 views
1

제 질문은 다른 클래스가 사용자의 입력을 기다리는 동안 주 클래스가 실행되지 않도록 만드는 방법입니다. 동시에 두 개의 JFrames가 실행됩니다.

은 어쩌면 내가 여기에 약간의 예/조각 그래서 내 생각 :

밖으로 정렬 도와주세요 그 길을 잘못 생각하고 있어요.

메인 클래스는 JFrame을 실행 한 다음 입력을 묻는 다른 JFrame을 엽니 다. 다른 JFrame은 AddEditWindow 클래스 안에 있습니다. 이 사용자까지 코드의 두 번째 라인에 도달하지 않도록

AddEditWindow temp = new AddEditWindow();

info[counter+1] = temp.newEditedInfo;

infoArray.add(info[counter+1]);는 는

그래서 꽤 많이, 나는이 부탁 해요 무엇을, 어떻게 그것을해야합니까

마침내 모든 것을 입력하는 것을 끝낸다.

AddEditWindow 용 ActionListener/Event 핸들러는 버튼 용입니다. 그래서 내가 버튼을 기다리고

을 클릭합니다합니다 (AddEditWindow 클래스 내부의 변수가 초기화 될 수 있도록) 그리고 다행스럽게도 필자는 그것을 충분히 설명 다음 코드는

info[counter+1] = temp.newEditedInfo;

계속하기 .

내가 잘못 생각하고 있는지 모르겠습니까?

+0

무엇 모달 대화 상자에 대한 것입니다 ...? – shan

+0

그랬 겠지만, 어떻게 보이는지 모르겠습니다. http://i46.tinypic.com/28l6e10.png –

+0

클래스를'JDialog'까지 확장 할 수 있습니다. \ – shan

답변

4

을 확인합니다. 당신이 문자열 대신 구성 요소를 제공하는 경우 ... 구성 요소 ... 예를 들어

를 표시

enter image description here

JPanel panel = new JPanel(new GridLayout(0, 2)); 
panel.add(new JLabel("Name")); 
panel.add(new JLabel("Last")); 
panel.add(new JTextField("Jason")); 
panel.add(new JTextField("Cardanas")); 
panel.add(new JLabel("Phone")); 
panel.add(new JLabel("Email")); 
panel.add(new JTextField("333")); 
panel.add(new JTextField("X")); 
panel.add(new JLabel("PID")); 
panel.add(new JLabel("Donation")); 
panel.add(new JTextField("X")); 
panel.add(new JTextField("0")); 
panel.add(new JLabel("Membership")); 
panel.add(new JLabel("Points")); 
panel.add(new JTextField("false")); 
panel.add(new JTextField("0")); 

int result = JOptionPane.showConfirmDialog(null, panel, "Quesion", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); 
switch (result) { 
    case JOptionPane.OK_OPTION: 
     //... 
     break; 
    case JOptionPane.CANCEL_OPTION: 
     //... 
     break; 
} 
+0

고맙습니다. 진심으로 당신도 그렇게 할 수 있는지 몰랐습니다. 놀라운. –

2

Modal 대화에 대해 질문하는 것 같습니다.

enter image description here

JOptionPane

int result = JOptionPane.showConfirmDialog(null, "Can I ask you a question", "Quesion", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); 
switch (result) { 
    case JOptionPane.YES_OPTION: 
     //... 
     break; 
    case JOptionPane.NO_OPTION: 
     //... 
     break; 
} 

은 매우 강력한 구성 요소입니다 ... 뭔가를 시도, 단순 위해서 this

관련 문제