java - JTabbedPane - 如何使用鼠标滚轮滚动(而不是选择)选项卡(SCROLL_TAB_LAYOUT)

标签 java swing mouse jtabbedpane nimbus

当空间有限时,选项卡会显示在滚动 Pane 中,并会出现两个小箭头按钮。我想使用鼠标滚轮来操作这些按钮。

Use mouse to scroll through tabs in JTabbedPane中有一个很好的解决方案,但它实际上选择了选项卡。我只想滚动它们,而不更改选择。

如何获取这些按钮或相关操作?

(我正在使用 Nimbus LaF,如果这很重要的话。)

最佳答案

刚刚找到了! DnDTabbedPane 中的拖放代码位于 https://java-swing-tips.blogspot.co.at/2008/04/drag-and-drop-tabs-in-jtabbedpane.html有这个非常好的方法:

private void clickArrowButton(String actionKey) {
    ActionMap map = getActionMap();
    if (map != null) {
        Action action = map.get(actionKey);
        if (action != null && action.isEnabled()) {
            action.actionPerformed(new ActionEvent(
                    this, ActionEvent.ACTION_PERFORMED, null, 0, 0));
        }
    }
}

所以我只需要说:

    addMouseWheelListener(new MouseWheelListener() {
        @Override
        public void mouseWheelMoved(MouseWheelEvent e) {
            if (e.getWheelRotation() > 0) {
                clickArrowButton("scrollTabsBackwardAction");
            } else {
                clickArrowButton("scrollTabsForwardAction");
            }
        }
    });

关于java - JTabbedPane - 如何使用鼠标滚轮滚动(而不是选择)选项卡(SCROLL_TAB_LAYOUT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51639630/

相关文章:

java - JTabbedPane 图像对齐

opengl - 使用鼠标在 openGL 中移动绘图

Java - 相对于 JFrame 的光标位置

java - 在 Java 中处理大文件 - XML 或序列化文件,哪个更好?

java - 如何正确删除catalina.out?

java - C# ServiceStack 和 Java 之间的日期时间格式

java - 在 Java8 中合并两个函数

java - 从 JPanel 获取选定的组件

Java Swing GUI 似乎没有

vim - 如何避免将行号从 vim 复制到剪贴板?