gpt4 book ai didi

java - 如何找到滚动条 slider 的大小?

转载 作者:行者123 更新时间:2023-12-01 04:20:13 25 4
gpt4 key购买 nike

我正在编写一个比较两个图像的程序。每个图像都显示在 jScrollPane 内的 jLabel 中。我想让用户单击并拖动图像以在 jScrollPane 内移动图像,并且当用户移动图像时另一图像也会移动。问题是当我有两个不同大小的图像时,因为它们以相同的增量移动并且不会同时到达末尾。我正在尝试找到 slider 的大小,以使它们正确移动并同时到达终点。

jScrollPane1 = new javax.swing.JScrollPane();
jScrollPane1.getHorizontalScrollBar().addAdjustmentListener(new HorizontalScrollBarMoved());
jScrollPane1.getVerticalScrollBar().addAdjustmentListener(new VerticalScrollBarMoved());


class HorizontalScrollBarMoved implements AdjustmentListener{
@Override
public void adjustmentValueChanged(AdjustmentEvent ae){

jScrollPane1.getHorizontalScrollBar().setValue(ae.getValue());
jScrollPane2.getHorizontalScrollBar().setValue(ae.getValue());
jScrollPane3.getHorizontalScrollBar().setValue(ae.getValue());
}
}

class VerticalScrollBarMoved implements AdjustmentListener{
@Override
public void adjustmentValueChanged(AdjustmentEvent ae){

jScrollPane1.getVerticalScrollBar().setValue(ae.getValue());
jScrollPane2.getVerticalScrollBar().setValue(ae.getValue());
jScrollPane3.getVerticalScrollBar().setValue(ae.getValue());
}
}


private void imageLabel1MouseDragged(java.awt.event.MouseEvent evt) {

int horizontalScrollBarInitialValue, verticalScrollBarInitialValue;
horizontalScrollBarInitialValue = ScrollPane1.getHorizontalScrollBar().getValue();
verticalScrollBarInitialValue = jScrollPane1.getVerticalScrollBar().getValue();

jScrollPane1.getHorizontalScrollBar().setValue(horizontalScrollBarInitialValue - (evt.getX() - mousePressedX)/30);
jScrollPane1.getVerticalScrollBar().setValue(verticalScrollBarInitialValue - (evt.getY() - mousePressedY)/30);
}

mousePressedX 是我存储第一次按下鼠标拖动图像的 X 坐标的变量。

最佳答案

我怀疑你能找到 slider 的大小。它会自动调整。您应该找到 JScrollPage 的大小,并将其与可见 View 的大小进行比较。

关于java - 如何找到滚动条 slider 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com