【问题标题】:JScrollPane step size when dragging拖动时的 JScrollPane 步长
【发布时间】:2013-12-12 19:45:00
【问题描述】:

是否可以在拖动时指定 JScrollPane 的步长?

我知道setUnitIncrementsetBlockIncrement,但是这些在拖动滚动条时不起作用。

编辑:AdjustmentListener

final AdjustmentListener myAdjustmentListener = new AdjustmentListener() {
   @Override
   public void adjustmentValueChanged(AdjustmentEvent e) {
       if (e.getAdjustmentType() == AdjustmentEvent.TRACK){
           e.getAdjustable().setUnitIncrement(500);
           e.getAdjustable().setBlockIncrement(500);
       }
   }
};

【问题讨论】:

    标签: java swing mouse jscrollpane drag


    【解决方案1】:

    设置setUnitIncrementsetBlockIncrement 值只会在使用鼠标滚轮、箭头键和滚动条箭头滚动时更改滚动速度。拖动滚动条时,这些值不会改变滚动速度。

    不过,AdjustmentListener 可以添加到滚动条以监听滚动条的移动。

    【讨论】:

    • 是的,这是由 JViewport 与 Rectangle 的比例值控制的。 JScrollPane 中的 JComponent
    • 我编辑了我的答案并添加了我当前使用的 AdjustmentListener。我应该使用哪个事件来监听滚动条的移动?
    【解决方案2】:

    AdjustmentListener 应该会为您施展魔法。你有没有看过这个: How to make JScrollPane scroll 1 line per mouse wheel step?

    【讨论】:

    • 是的,我运行的AdjustmentListener 就是从那里得到的。我已经编辑了我的原始帖子并添加了当前版本的监听器。但它只包括鼠标滚轮滚动和滚动条箭头,而不是拖动条本身。
    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多