【发布时间】:2012-03-09 02:11:42
【问题描述】:
我在一个 JScrollPane 上放置了多个 JPanel。现在我有它,这样如果你的鼠标在框架之外,它就不会拖动 JPanel。
当我向一个方向移动组件时,我需要让它滚动。 (例如,如果我抓住组件,然后一直向右移动到屏幕边缘,则组件应该移动并且 JScrollPane 应该同时滚动)。本质上,当我拖动时两者都应该可见,而 JScrollPane 是(自动滚动?)
int dX,dY;
public void mousePressed(MouseEvent e)
{
dX = e.getLocationOnScreen().x - this.getX();
dY = e.getLocationOnScreen().y - this.getY();
}
public void mouseDragged(MouseEvent e)
{
this.scrollRectToVisible(getVisibleRect());
this.setLocation(e.getLocationOnScreen().x - dX, e.getLocationOnScreen().y - dY);
dX = e.getLocationOnScreen().x - this.getX();
dY = e.getLocationOnScreen().y - this.getY();
}
这就是拖动的代码。屏幕(它是一个变量)是一个 JPanel,它被发送到包含在 JFrame 中的 JScrollPane。
【问题讨论】:
-
请更详细地解释您的问题。假设我们对您的项目一无所知。
-
对不起。试图清理一下。还不确定你是否明白。
-
对不起,也许是我,但我仍然有太多未知数无法理解这个问题。考虑创建并发布sscce。
标签: java swing scroll jscrollpane jlabel