2016-10-04 3 views
0

SWING의 XYZ jInternalFrame에서 ABC jINternalFrame을 호출하려고합니다.스윙에서 호출 프레임 컨트롤이 손실되지 않고 jInternalFrame에서 JinternalFrame을 호출하는 방법

하지만 ABC를 호출 할 때 내가

-On XYZ 사용자가 - 만약 불일치 XYZ 호출을 발견
제품 데이터를로드하는 옵션을 선택입니다 원하는 것은 XYZcontrol

잃고 오전 ABC
ABC -In - 사용자가 올바르게 일치하지 않아 ABC 프레임을 닫습니다.
이제 ABC라고하는 곳에서 계속 내 프로그램을 실행하고 싶습니다.

현재 ABC와 XYZ를 호출하여 실행 어떻게 할 수 있습니까? 당신이 모달 대화를 기다리고 모달 대화, 모달라는 코드를 표시 할 때

final JDialog frame = new JDialog(parentFrame, frameTitle, true); 
frame.getContentPane().add(panel); 
frame.pack(); 
frame.setVisible(true); 

폐쇄 될 : 내가 코드 아래 사용하고

if (frmUpdateData == null || frmUpdateData.isClosed()){ 
    frmUpdateData = new FrmUpdateData(); 
    JDesktopPane desktopPane = getDesktopPane(); 
    desktopPane.add(frmUpdateData); 
    frmUpdateData.setVisible(true); 
    frmUpdateData.setLocation(this.getWidth()/2- frmUpdateData.getWidth()/2, this.getHeight()/2-frmUpdateData.getHeight()/2); 
} 
+1

난 당신이 요구하는지에 100 % 명확하지거야 - 질문을 명확히하십시오 우리를 위해,하지만 나는 [이 질문] (http://stackoverflow.com/questions/14083517/joptionpane-issue-using-internal-dialog) 중복 될 수 있습니다, 그리고 당신이 원하는'JOptionPane.showInternalInputDialog '여기. –

답변

-1

당신은 사용에게 모달 대화 상자를 표시 실행을 계속합니다. 자바 스크립트에서는 alert과 같습니다. 당신이되는 JDialog를 사용 와나 해달라고 경우

, 당신이 시도 할 수 있습니다 :

JInternalFrame frmUpdateData = null; 
    frmUpdateData = new JInternalFrame("Test", true, true); 
    frmUpdateData.setBounds(0, 0, 200, 200); 
    JDesktopPane desktopPane = new JDesktopPane(); 
    desktopPane.setBounds(0, 0, 600, 600); 
    desktopPane.add(frmUpdateData); 
    desktopPane.setVisible(true); 
    frmUpdateData.setVisible(true); 
    JFrame frame = new JFrame(); 
    frame.setBounds(0, 0, 600, 600); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().add(desktopPane); 
    frame.setVisible(true); 
    while (frmUpdateData != null && !frmUpdateData.isClosed()) { 
     try { 
      Thread.sleep(100); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
    JOptionPane.showMessageDialog(null, "Done"); 

참조 : Stackoverflow

+0

안녕하세요 @ Edgard-Leal (frmUpdateData == null || frmUpdateData.isClosed()) { frmUpdateData = new FrmUpdateData()} {code} {code}이 코드를 사용하여 현재 어떻게 내부 대화 상자를 사용하여 내부 대화 상자를 사용할지 모릅니다. ; JDesktopPane desktopPane = getDesktopPane(); desktopPane.add (frmUpdateData); frmUpdateData.setVisible (true); frmUpdateData.setLocation (this.getWidth()/2- frmUpdateData.getWidth()/2, this.getHeight()/2-frmUpdateData.getHeight()/2); }'code' –

+0

이것을 확인하고 문제가 해결되는지 알려주세요. –

+1

고마워요! 끝내주는 해결책, 나는 전에 쓰레드를 사용하지 않았다. –