2014-10-10 6 views
1

나는 그네에 새로운 오전과 내가 하나 의심의 여지가 :저장 체크 박스 상태/대화

나는 하나의 대화 상자, 그 대화 상자에서,이 하나의 체크 박스, 확인이와 취소 버튼을. 사용자가 확인란을 선택하고 확인 버튼을 클릭한다고 가정하고, 사용자가 해당 대화 상자를 다시 열면 확인란이 선택되어 있어야합니다.

누구든지 아이디어를 줄 수 있습니다.

저는 setSelected (true) 및 setSelected (false) 메소드를 사용하여이 작업을 수행 할 수 있음을 알고 있습니다.

그러나 확인란의 상태를 저장하는 방법.

+1

위 : (속성, 원시 TXT를 XML, JSON 파일), 읽기/쓰기 개체에 텍스트로 구문 분석/쓰기, DB에 저장 파일을 사용하거나 Java 환경 설정을 사용하십시오. – gtgaxiola

+0

원래 대화 상자에 대한 참조를 유지하십시오. 시간이되면 다시 볼 수 있도록 설정하면 크기와 위치가 같아지고 각 컨트롤의 상태는 동일합니다. –

답변

1

JOptionPane에 구성 요소를 전달할 수 있으며 올바르게 표시됩니다.

예를 들어 JCheckBox을 생성하고 JOptionPane에 전달하면 대화 상자를 닫은 후에 확인란의 상태를 검사하고 원하는 곳에 저장할 수 있습니다. 다음에 대화 상자를 표시하려면 확인란을 전달하기 전에 마지막으로 저장 한 상태로 상태를 설정하십시오.

예를 들어 (단지 시연 목적) : 내 머리의

final JFrame f = new JFrame("Checkbox test"); 
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
f.addWindowListener(new WindowAdapter() { 
    // I store the checkbox state here in a boolean variable: 
    boolean save; 

    @Override 
    public void windowClosing(WindowEvent e) { 
     // Now user wants to close the application, ask confirmation: 
     // We create a check box with the initial value of the stored state: 
     JCheckBox cb = new JCheckBox("Save settings before Exit", save); 
     int res = JOptionPane.showConfirmDialog(null, 
      new Object[] {"Are you sure you want to Exit?", cb}, "Exit?", 
        JOptionPane.OK_CANCEL_OPTION); 

     // Dialog closed, you can save the sate of the check box 
     save = cb.isSelected(); 
     if (res == JOptionPane.OK_OPTION) { 
      if (save) { 
       // Settings can be saved here. 
      } 
      // And exit (by disposing the only frame) 
      f.dispose(); 
     } 
    } 
}); 
f.getContentPane().add(new JLabel("Try to close the application")); 
f.pack(); 
f.setLocationRelativeTo(null); 
f.setVisible(true); 
+0

'while (true) {'('true'와 끝없는 반복)으로 포장하지 말아주세요. – mKorbel

+0

@mKorbel 무한 루프는'Cancel'으로 닫혀 있으면 자동으로 다시 대화 상자를 보여 주려고했습니다. 사용자는 체크 박스가 지난 번과 동일한 상태에 있음을 볼 수 있습니다. 대신에'JFrame'을 사용하는 예제를 재 작성했습니다. – icza

+0

thx 많이 @icza. 그러나 체크 박스 ** 저장 **을 선택하면 취소를 클릭하고 JOptionPane을 다시 호출합니다. ** 저장 **이 여전히 선택되어 있는지 확인합니다. ** 저장 ** 상태를 재설정하지 않고 ** 확인 **을 클릭하면 저장해야합니까? – okaisan1