Java 滚动JScrollPane,同时拖动JScrollPane上的JLabel

Java 滚动JScrollPane,同时拖动JScrollPane上的JLabel,java,swing,scroll,jscrollpane,jlabel,Java,Swing,Scroll,Jscrollpane,Jlabel,我在JScrollPane上放置了多个JPanel。现在我有了它,这样如果你的鼠标在框架外,它就不会拖动JPanel了 我需要使它滚动,而我在一个方向上移动组件。(例如,如果我抓取组件,然后一直向右移动到屏幕边缘,组件应该移动,同时JScrollPane应该滚动)。基本上,当我拖动和JScrollPane(自动滚动?)时,两者都应该可见 这是拖动的代码。屏幕(是一个变量)是一个JPanel,它被发送到JFrame中包含的JScrollPane。scrollPaneView。设置AutoScrol

我在JScrollPane上放置了多个JPanel。现在我有了它,这样如果你的鼠标在框架外,它就不会拖动JPanel了

我需要使它滚动,而我在一个方向上移动组件。(例如,如果我抓取组件,然后一直向右移动到屏幕边缘,组件应该移动,同时JScrollPane应该滚动)。基本上,当我拖动和JScrollPane(自动滚动?)时,两者都应该可见


这是拖动的代码。屏幕(是一个变量)是一个JPanel,它被发送到JFrame中包含的JScrollPane。

scrollPaneView。设置AutoScrolls(true)以及滚动到可见代码应该可以工作


有关更多信息,请参阅JComponent#setAutoscrolls javadoc。

请更详细地解释您的问题。假设我们对你的项目一无所知。对不起。试着把它弄清楚一点。我还不确定你是否明白。对不起,也许是我,但还有太多的未知数让我无法理解这个问题。考虑创建和发布<代码> SETAutoSoScLoSd()/<代码> 1。另请参见。在正在拖动的标签上或整个面板上设置自动滚动?取决于安装鼠标侦听器的组件。
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();
}