2012-04-04 12 views
1

3つのタブで1つのJTabbedPaneを作成しました。 私は別のタブに切り替えるとstateChangはクリックに反応しません。 私のコードにデバッグ・マークをサイド・パブリックのvoid 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がタブをクリックしたときにJTabbedPaneが応答しないのはなぜですか?」*おそらく、このような変更を検出する必要がありますか?私は 'JTabbedPane'インスタンスを含む少なくとも10個のGUIを書いており、知る必要は全くありません。 –

答えて

2

コードでこの行を呼び出したことはありますか?

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

よく目撃された!そして忘れがちです。 :-) – trashgod

関連する問題