2012-03-09 23 views
2

JScrollPaneに複数のJPanelを配置しています。今、私はそれがあなたのマウスがフレームの外にある場合、JPanelsをドラッグしないようにします。JScrollPaneをスクロールしながらJScrollPane上にあるJLabelをドラッグ

コンポーネントを方向に移動させながらスクロールする必要があります。 (例えば、コンポーネントをつかんで、画面の端までずっと右に移動すると、コンポーネントは移動し、JScrollPaneは同時にスクロールする必要があります)。私はドラッグしていながらJScrollPaneのですが、基本的に両方が表示されるはずです(自動スクロール?)ドラッグのためのコードのthats

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(); 
} 

。画面(変数)は、JFrameに含まれるJScrollPaneに送信されるJPanelです。

+0

問題を詳しく説明してください。あなたのプロジェクトは何も知らないと仮定します。 –

+0

申し訳ありません。それを少しクリアしようとしました。あなたがそれを手に入れるかどうかまだ分かりません。 –

+2

申し訳ありませんが、おそらくそれは私ですが、問題を理解するにはまだ未知のものがたくさんあります。 [sscce](http://sscce.org)の作成と投稿を検討してください。 –

答えて

3

scrollPaneView.setAutoScrolls(true)とスクロールバーコードが同時に動作するはずです。

詳細については、JComponent#setAutoscrolls javadocを参照してください。

+0

'setAutoScrolls()'に+1します。 ['ScrollAction'](http://stackoverflow.com/a/7203419/230513)も参照してください。 – trashgod

+0

ドラッグされているラベルまたはパネル全体で自動スクロールを設定しますか? –

+0

マウスリスナーをインストールしたコンポーネントによって異なります。 –

関連する問題