【问题标题】:Use mouse to scroll through tabs in JTabbedPane使用鼠标滚动浏览 JTabbedPane 中的选项卡
【发布时间】:2016-11-22 14:45:48
【问题描述】:

我在滚动选项卡布局中有一个JTabbedPane,因此所有选项卡都很好地位于一行。有没有办法让用户使用鼠标滚轮滚动浏览它们,或者是使用键盘和 GUI 的箭头并单击选项卡来导航 JTabbedPane.SCROLL_TAB_LAYOUT 的唯一方法?

【问题讨论】:

    标签: java swing user-interface mousewheel jtabbedpane


    【解决方案1】:

    在研究了 Eclipse 的自动完成功能后,我确实找到了答案:使用 MouseWheelListener 代替 JTabbedPane

    JTabbedPane tabbedPane = new JTabbedPane();
    tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    tabbedPane.addMouseWheelListener(new MouseWheelListener() {
        @Override
        public void mouseWheelMoved(MouseWheelEvent e) {
            JTabbedPane pane = (JTabbedPane) e.getSource();
            int units = e.getWheelRotation();
            int oldIndex = pane.getSelectedIndex();
            int newIndex = oldIndex + units;
            if (newIndex < 0)
                pane.setSelectedIndex(0);
            else if (newIndex >= pane.getTabCount())
                pane.setSelectedIndex(pane.getTabCount() - 1);
            else
                pane.setSelectedIndex(newIndex);
        }
    });
    

    这既允许鼠标在选项卡上滚动,又尊重JTabbedPane 的索引边界。

    如果有人有更好的答案,我很乐意接受!

    【讨论】:

    • 你在哪里找到的?链接?
    • @HovercraftFullOfEels 我使用 Eclipse 的自动完成功能来搜索事件监听器,并给出了代码。 (tabbedPane 实际上是我在程序中使用的名称,而不是某些教程中的通用名称)
    • 如果有必要/可取的话,我当然可以四处寻找包含更多信息的教程?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多