2012-04-04 2 views
1

Я создал одну JTabbedPane с 3 вкладками. Когда я переключаюсь на разные вкладки, stateChang не отвечает на щелчок. , когда я помещал отладочную метку в мой код в боковом публичном пустоте stateChanged(ChangeEvent e) { }, я не вижу эффекта после нажатия.Почему JTabbedPane не отвечает на щелчок на вкладке?

Что может быть причиной и как я могу исправить это?

public class TabbedPanChangeListener implements ChangeListener { 
     ConfigToolScannersPanel panel; 
     List<String> artikels = GenericsUtil.makeList(); 
public TabbedPanChangeListener(ConfigToolScannersPanel configToolScannersPanel) { 
     this.panel = configToolScannersPanel; 
} 

public void stateChanged(ChangeEvent e) { 
    WebTabbedPane sourceTabbedPane = (WebTabbedPane) e.getSource(); 
    int index = sourceTabbedPane.getSelectedIndex(); 
    String titel = sourceTabbedPane.getTitleAt(index); 
    File dirconfig = new File("C:\\tmp\\config"); 
    File dirPictures = new File("C:\\tmp\\Pictures"); 
    File diraxi = new File("C:\\tmp\\"); 
    File artikels = new File("C:\\tmp\\artikels.csv"); 

    if (dirconfig.exists()) { 
     if (titel.equalsIgnoreCase("ftp")) {     
      panel.updateUI(); 
     } else if (titel.equalsIgnoreCase("Picture")) { 
      setSelectedFileToNull(); 
      BorderLayout layout = (BorderLayout) panel.pictureTabPanel.getLayout(); 
      panel.pictureTabPanel.remove(layout.getLayoutComponent(BorderLayout.WEST)); 
      panel.pictureTabPanel.add(FileList.getGui(dirPictures.listFiles(), true, panel), BorderLayout.WEST); 
      panel.pictureTabPanel.remove(layout.getLayoutComponent(BorderLayout.NORTH)); 
      panel.pictureTabPanel.add(FileList.getGui(diraxi.listFiles(), false, panel), BorderLayout.NORTH); 
      panel.pictureTabPanel.remove(layout.getLayoutComponent(BorderLayout.CENTER)); 

      // *** Add and remove from tool bar *** 
      visibaleInvisibale(false); 
      panel.btnDelete.setVisible(true); 
      panel.btnDelete.setAction(new DeletePictureAction(panel)); 
      panel.btnAdd.setVisible(true); 
      panel.btnAdd.setAction(new AddPictureAction(panel)); 
      panel.updateUI(); 
     } else if (titel.equalsIgnoreCase("dienst")) { 

     } 
    } 
} 
+0

* «Почему JTabbedPane не отвечает на щелчок на вкладке?» * Возможно, лучший вопрос: зачем вам нужно выявлять такие изменения? Я написал не менее 10 GUI, включая экземпляры JTabbedPane, и никогда не нуждался в этом. –

ответ

2

Вы вызвали эту строку в своем коде?

tabbedPane.addChangeListener(new TabbedPanChangeListener(configToolScannersPanel)); 
+0

Хорошо заметили! И легко забыть. :-) – trashgod

Смежные вопросы