使用鼠标滚动 JTabbedPane 中的选项卡

2024-02-05

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


在深入研究 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.

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用鼠标滚动 JTabbedPane 中的选项卡 的相关文章

随机推荐