java - 为什么 JTabbedPane 不响应单击选项卡?

标签 java swing jtabbedpane

我创建了一个带有 3 个选项卡的 JTabbedPane。 当我切换到不同的选项卡时,stateChang 不响应单击。 当我将调试标记放在 public void stateChanged(ChangeEvent e) { } 中的代码中时,单击后没有看到任何效果。

原因是什么以及如何解决?

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")) {

        } 
    }
}

最佳答案

您在代码中调用了这一行吗?

tabbedPane.addChangeListener(new TabbedPanChangeListener(configToolScannersPanel));

关于java - 为什么 JTabbedPane 不响应单击选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10010052/

相关文章:

java - Swing JTextPane编译错误

java - 在actionperformed监听器中创建jpanel?

java - Wildfly 11 随机记录到 console.log 而不是服务器日志

java - 数苹果和橙子

java - 插入数据库时​​ netbeans 项目中的参数类型不匹配

java - 如何禁用 JTabbedPane 的 CONTROL+PAGE_UP?

java - 如何更改 JTabbedPane 的背景颜色?

java - 由于 JPanel 实现了 ActionListener,paintComponent() 和 actionPerformed() 不同步

java - 如何为文本文件中的每一行制作按钮?

java - 检索 JTabbedpane 中 Textarea 的内容