2014-03-03 3 views
1

JTextField와 두 개의 RadioButton을 사용하여 JOptionPane (또는 유사한 항목)을 수행해야하지만 가능한 경우이를 알지 못합니다. differents 옵션이있는 메인 프레임이 있으며 "Operacion"을 클릭하면 대화 상자를 호출해야합니다. 어떻게 대화 상자를 만들 수 있습니까?사용자 정의 JoptionPane 수행 방법

+0

체크 아웃이 튜토리얼 : http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html – mdewitt

+0

사용되는 JDialog를 확장하는 클래스 . .setModal (true)로 모달로 설정 한 다음 사용자에게 보여줍니다. 당신은 어쨌든 당신이 좋아하는 그것을 빌드하는 자사의 init 메소드를 디자인 할 수 있습니다. JOptionPane처럼 행동 할 것입니다. 당신이 클릭 한 것에 따라 true/false를 반환하는 .getDialogResult()와 같은 것을 노출한다고 가정하고 .getValue() 사용자 입력 데이터를 반환합니다. –

답변

4

텍스트 필드와 2 개의 라디오 버튼은 JOptionPane에 들어가기에 충분히 작아야하므로 계속 사용하는 것이 가장 좋습니다.

2 개의 라디오 버튼이있는 JTextField를 JPanel에 추가하고 JPanel을 JOptionPane에 표시된 구성 요소로 추가하십시오. 이미 선택된 라디오 버튼 중 하나를 사용하여 "Ok"만 표시하는 옵션 창을 사용하고 싶을 것입니다.

안전하기 때문에 JOptionPanes가 크기 조정이 가능하다고 생각하지 않기 때문에 JPanel을 JScrollPane에 래핑 할 수 있습니다. 사용자가 명령 줄 옵션 또는 접근성 설정을 통해 모양과 느낌을 변경하는 경우에 따라 달라집니다. GUI 구성 요소를 일부 차단할 수 있습니다.

+0

스크롤 창은 필요하지 않아야합니다. 목록에있는 구성 요소는 잘 포장되어야합니다. (JOptionPane은 표시 될 때마다 나타납니다.) –

+0

FYI : JOptionPane 저글링을 조금 더 사용하여 크기를 조정할 수 있습니다 : op = new JOptionPane (...), dlg = op.createDialog();'dlg.setDefaultCloseOperation (JDialog.DISPOSE_ON_CLOSE); 그리고 마지막으로 : dlg.setResizable (true); dlg.pack(); ' –

1

저는 개인적으로 JOptionPane을 사용하는 팬이 아닙니다. JDialog를 사용하는 경로로 이동하십시오.

그것은 것처럼 간단 할 수 있습니다

 JPanel innerPanel = new JPanel(new FlowLayout()); 
     // Add components and listeners here 

     JDialog dialog = new JDialog(); 
     dialog.add(innerPanel); 
     dialog.setModal(true); 
     dialog.pack(); 
     dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

     dialog.setVisible(true); 
     dialog.addWindowListener(new WindowAdapter() 
     { 
      @Override 
      public void windowClosing (WindowEvent e) 
      { 
       super.windowClosing(e); 
      } 
     }); 
+0

내 프로젝트에 JDialog를 추가하고 구성했지만 JFrame에서 JDialog를 호출하는 방법을 모르므로 프레임의 변수를 대화 상자에 전달해야합니다. 필자는 Eclipse에서 Window Builder 플러그인을 사용하고 있으며 패키지의 각 구성 요소에 대해 하나의 클래스를 작성합니다. 나는 내가 잘 설명하지 않는다고 생각한다. – temerariomalaga

+0

Window Builder에 익숙하지 않습니다. 잘하면 그것은 자신의 사용자 지정 논리를 삽입하는 방법이 있습니다. JFrame 사용자 정의 논리 내에서 대화 상자를 만들어야합니다. 'MyJDialog mydiaolog = new MyJDialog(); '와 같은 것. –

+0

좋아, 해보 려구. 나는 모든 인터페이스를 자동화하고있다. 나는 대화를하고 코드를 복사 할 것이다. 고마워. – temerariomalaga