2014-03-14 5 views
0

ChangeListner 방법을 간단합니다 난 내 프로젝트를 실행할 때, 나는 실제로 tabbedPan에 도달하기 전에 JOptionDialog은 (JFrame의 부하와 실제로 함께) 튀어! 내 실제 목적은 데이터베이스에서 해당 탭에 일부 내용을로드 할 수 있도록 탭 변경 내용을 듣고 싶습니다! 도와주세요JTabbedPane의 ChangeListener가 메인 JFrame의 시작으로로드되는 이유는 무엇입니까? 다음

jTabbedPane1.addChangeListener(new ChangeListener() { 
     public void stateChanged(ChangeEvent evt) { 
      jtabpanChangeListner(evt); 
     } 
    }); 
private void jtabpanChangeListner(ChangeEvent evt) {          
    // TODO add your handling code here: 

    int index = jTabbedPane1.getSelectedIndex(); 
    String msg = jTabbedPane1.getTitleAt(index); 
    System.out.println("Tab changed to: " +msg); 
    JOptionPane.showMessageDialog(jTabbedPane1,"hello change me do you?+");} 

답변

1

JTabbedPane은 선택한 탭이 변경 될 때 ChangeEvent를 보냅니다. 특히, JTabbedPane가 하늘의 경우, 최초의 탭을 추가하면, JTabbedPane는 선택된 탭이 null로부터 무언가로 변경된 것을 나타내는 ChangeEvent를 송신합니다.

첫 번째 변경 이벤트를 고려하거나 뒤에 ChangeListener 을 추가해야 JTabbedPane에 첫 번째 탭을 추가해야합니다.

+0

답장을 보내 주시면 하지만 제발, 더 명확하게, 나는 프로그래밍 분야에 새로운입니다. 나는 netbeans를 사용하여 mm! 일부 코드는 변경할 수 없습니다! – dip

+0

감사합니다! 그것은 일했다! 모두 자동 생성 된 netbeans 코드에 문제가있었습니다! 메소드의 선언 순서를 변경했습니다! 하지만 당신의 아이디어에 대해 명확히 말씀해주십시오 @@ change event @@ 미리 감사드립니다! – dip