---
title: JScrollPane JViewport JScrollBar
tags: [JScrollPane, JViewport, JScrollBar]
description: JScrollPane、JViewport、JScrollBar関係の記事へのスクリーンショット付きリンク一覧
---
このページでは、`JScrollPane`、`JViewport`、`JScrollBar`といったスクロール関係のコンポーネントの使い方を集めて一覧にしています。

#contents

* JScrollPane JViewport JScrollBar [#JScrollPane]
** JScrollPaneのViewportをマウスで掴んでスクロール [#HandScroll]
#swingdescription(Swing/HandScroll,JScrollPaneのViewportをマウスで掴んでスクロール,JScrollPaneの窓の中をマウスで掴んで画像をスクロールします。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTNqjajfcI/AAAAAAAAAbI/Km-h7tWdYOo/s144/HandScroll.png)

** JTreeの余白をドラッグしてスクロール [#TreeDragScroll]
#swingdescription(Swing/TreeDragScroll,JTreeの余白をドラッグしてスクロール,JTreeの余白などをマウスでドラッグしてスクロールします。,https://lh3.googleusercontent.com/-8b-0M5bS9Tw/Tvf_XhVVreI/AAAAAAAABHU/BdECxkBAdzU/s144/TreeDragScroll.png)

** JScrollPaneでキネティックスクロール [#KineticScrolling]
#swingdescription(Swing/KineticScrolling,JScrollPaneでキネティックスクロール,JScrollPaneにキネティックスクロール(慣性スクロール)風の動作をするマウスリスナーを設定します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTO32D08pI/AAAAAAAAAdE/TpuoGrYo-Q0/s144/KineticScrolling.png)

** JScrollPaneのオートスクロール [#AutoScroll]
#swingdescription(Swing/AutoScroll,JScrollPaneのオートスクロール,JScrollPane上でのマウスドラッグに応じてラベルをオートスクロールします。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTH2GCzRoI/AAAAAAAAAR0/FR7seILhmaM/s144/AutoScroll.png)

** JScrollPane内にある複数Componentを配置したJPanelをJLayerを使ってドラッグスクロール [#DragScrollLayer]
#swingdescription(Swing/DragScrollLayer,JScrollPane内にある複数Componentを配置したJPanelをJLayerを使ってドラッグスクロール,複数のネストしたComponentを配置したJPanelのドラッグイベントを、JScrollPaneをラップしたJLayerで受け取ってスクロール可能にします。,https://lh5.googleusercontent.com/-5zBF0JOr6kM/UfuiEj7Do7I/AAAAAAAABxg/7tKYnrOl9eo/s144/DragScrollLayer.png)

** JScrollBarをJScrollPaneの左と上に配置 [#LeftScrollBar]
#swingdescription(Swing/LeftScrollBar,JScrollBarをJScrollPaneの左と上に配置,JScrollBarの配置位置を、JScrollPaneの左側、上側に変更します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTPG13yZbI/AAAAAAAAAdc/1a4aTgyblRo/s144/LeftScrollBar.png)

** ScrollBarの表示を変更 [#IconScrollBar]
#swingdescription(Swing/IconScrollBar,ScrollBarの表示を変更,JScrollPaneから縦JScrollBarを取得し、そのノブ上にアイコンを追加表示します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTOPy62F7I/AAAAAAAAAcE/M4J9GIXdfBY/s144/IconScrollBar.png)

** JScrollPaneのスクロールを禁止 [#DisableScrolling]
#swingdescription(Swing/DisableScrolling,JScrollPaneのスクロールを禁止,JScrollPaneのスクロールを一時的に禁止します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTLM6S99OI/AAAAAAAAAXM/9r2e_2JRA5g/s144/DisableScrolling.png)

** JScrollPaneのスクロールを同期 [#SynchronizedScroll]
#swingdescription(Swing/SynchronizedScroll,JScrollPaneのスクロールを同期,2つのJScrollPaneのスクロールを同期します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTT_c3UmrI/AAAAAAAAAlU/adQEhxZ2FXc/s144/SynchronizedScroll.png)

** JScrollPaneのスクロール量を変更 [#ScrollIncrement]
#swingdescription(Swing/ScrollIncrement,JScrollPaneのスクロール量を変更,スクロールがホイールの回転でスムーズに移動しない(遅い)場合は、JScrollPaneのスクロール量を変更します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTSi6qpTZI/AAAAAAAAAi8/nrtWKpDCdHI/s144/ScrollIncrement.png)

* ↑10 ↓11 [#e8c7f554]
#adsensebar

** JScrollBarをJSliderとして代用する [#ScrollBarAsSlider]
#swingdescription(Swing/ScrollBarAsSlider,JScrollBarをJSliderとして使用する,JScrollBarをJSliderの代わりとして使用します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTSgYVysvI/AAAAAAAAAi4/5UjLktCUVb8/s144/ScrollBarAsSlider.png)

** JScrollBarのButtonの位置を変更 [#ScrollBarButtonLayout]
#swingdescription(Swing/ScrollBarButtonLayout,JScrollBarのButtonの位置を変更,JScrollBarのスクロール移動Buttonの配置位置をレイアウトマネージャーを使って変更します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TdC-jTZ434I/AAAAAAAAA7I/cnbdjlwODJg/s144/ScrollBarButtonLayout.png)

** TableCellEditorをスクロール可能にする [#ScrollingCellEditor]
#swingdescription(Swing/ScrollingCellEditor,TableCellEditorをスクロール可能にする,JTableのTableCellEditorとして、JTextAreaとJScrollPaneを使用します。,https://lh4.googleusercontent.com/-DDRbJ9WhSJk/Tf7btYjUE7I/AAAAAAAAA9s/yVKIKC55zIw/s144/ScrollingCellEditor.png)

** JScrollBarが非表示でもMouseWheelでScrollする [#MouseWheelScroll]
#swingdescription(Swing/MouseWheelScroll,JScrollBarが非表示でもMouseWheelでScrollする,JScrollBarが非表示の場合のMouseWheelによるScrollをテストします。,https://lh6.googleusercontent.com/-65-zGNk3eWU/TwFLJU_DP4I/AAAAAAAABHg/mEXoePs30sk/s144/MouseWheelScroll.png)

** JScrollBarのKnobの最小サイズを設定する [#MinimumThumbSize]
#swingdescription(Swing/MinimumThumbSize,JScrollBarのKnobの最小サイズを設定する,JScrollBarのKnobの最小サイズを設定します。,https://lh4.googleusercontent.com/-A8TRDbOQ1p4/T2bKeM8dcvI/AAAAAAAABKI/iBKMsL6eGfM/s144/MinimumThumbSize.png)

** GridLayoutとJScrollPaneを使ったグリッド単位での表示切り替え [#GridScrollAnimation]
#swingdescription(Swing/GridScrollAnimation,GridLayoutとJScrollPaneを使ったグリッド単位での表示切り替え,JPanelにGridLayoutでコンポーネントを追加し、これをJScrollPaneに配置して、グリッド単位での表示、スクロールアニメーションによる切り替えを行います。,https://lh4.googleusercontent.com/-V2E4xmdHmBE/UCiUOuOlrLI/AAAAAAAABQg/IYqzH9-WdsI/s144/GridScrollAnimation.png)

** JScrollPane内にあるJTableなどで追加した行が可視化されるようにスクロールする [#ScrollRectToVisible]
#swingdescription(Swing/ScrollRectToVisible,JScrollPane内にあるJTableなどで追加した行が可視化されるようにスクロールする,JScrollPaneのJViewport内にあるJTable、JList、JTreeで、それぞれ追加された最終行が可視化されるようにスクロールします。,https://lh3.googleusercontent.com/-t_4BD1mGUGk/UE1eF0Ead3I/AAAAAAAABSM/4a4aPSpMDM4/s144/ScrollRectToVisible.png)

** JSplitPaneに2つのJTableを配置してスクロールを同期する [#SynchronizedScrollingTables]
#swingdescription(Swing/SynchronizedScrollingTables,JSplitPaneに2つのJTableを配置してスクロールを同期する,JSplitPaneの左右に、JTableをそれぞれ配置し、スクロールや追加などが同期するようにモデルを共有します。,https://lh4.googleusercontent.com/-mAnvPJlUJSI/UJ_bYI_kJsI/AAAAAAAABWo/a_jdyUqFLwM/s144/SynchronizedScrollingTables.png)

** JScrollBarに検索結果をハイライト表示 [#ScrollBarSearchHighlighter]
#swingdescription(Swing/ScrollBarSearchHighlighter,JScrollBarに検索結果をハイライト表示,JScrollBarなどにJTextAreaの文字列検索の結果をハイライト表示します。,https://lh4.googleusercontent.com/-69jv_2q3f8g/UQT6FH3HXbI/AAAAAAAABcY/FmYcY3aLr6w/s144/ScrollBarSearchHighlighter.png)

** JScrollBarが最後までスクロールしたことを確認する [#DetectScrollToBottom]
#swingdescription(Swing/DetectScrollToBottom,JScrollBarが最後までスクロールしたことを確認する,JScrollBarが最後までスクロールしたかどうかを確認します。,https://lh5.googleusercontent.com/-OoIPVjne_9M/UTPo6KgN_NI/AAAAAAAABlw/7miro8ywcyg/s144/DetectScrollToBottom.png)

* ↑20 ↓21 [#k9b9bc0c]
#adsensebar

** JTextPaneを一行に制限してスタイル可能なJTextFieldとして使用する [#OneLineTextPane]
#swingdescription(Swing/OneLineTextPane,JTextPaneを一行に制限してスタイル可能なJTextFieldとして使用する,JTextPaneの行数を一行のみに制限して、文字色などのスタイル付けが可能なJTextFieldとして使用します。,https://lh4.googleusercontent.com/-jckifA3Ym6c/UYZlsvWPTqI/AAAAAAAABrY/ERGHE6rtaPo/s144/OneLineTextPane.png)

** JTableのセルを横方向に連結する [#ColumnSpanningCellRenderer]
#swingdescription(Swing/ColumnSpanningCellRenderer,JTableのセルを横方向に連結する,JTableのセルを横方向に連結するセルレンダラーを作成します。,https://lh5.googleusercontent.com/-wcXag_bBidU/UY-uA3riCRI/AAAAAAAABrs/Q_V-fdNVRu8/s144/ColumnSpanningCellRenderer.png)

** JScrollBarを半透明にする [#TranslucentScrollBar]
#swingdescription(Swing/TranslucentScrollBar,JScrollBarを半透明にする,半透明のJScrollBarを作成して、JViewport内部に配置します。,https://lh3.googleusercontent.com/-X8o390yxqhI/UZjhjkgUrkI/AAAAAAAABsY/Aajtim-5-uE/s144/TranslucentScrollBar.png)

** JViewportにBorderを設定する [#ViewportBorder]
#swingdescription(Swing/ViewportBorder,JViewportにBorderを設定する,JViewportにBorderを設定して余白を作成します。,https://lh6.googleusercontent.com/-dtdRJtfyQqs/UtKoFiKxRVI/AAAAAAAAB-A/QmWEeAHNlmE/s144/ViewportBorder.png)

** JLabelとIconで作成した検索位置表示バーをマウスで操作する [#BoundedRangeModel]
#swingdescription(Swing/BoundedRangeModel,JLabelとIconで作成した検索位置表示バーをマウスで操作する,JScrollBarからBoundedRangeModelを取得し、JLabelとIconで表示した検索位置表示バーをマウスで操作可能にします。,https://lh4.googleusercontent.com/-EN1vcmWX7Gs/UwDyGP5n91I/AAAAAAAACAE/tb9w7pHxtk8/s144/BoundedRangeModel.png)

** JTextFieldの表示領域をJScrollBarでスクロールする [#HorizontalVisibility]
#swingdescription(Swing/HorizontalVisibility,JTextFieldの表示領域をJScrollBarでスクロールする,JTextFieldの表示領域をJScrollBarでスクロール可能にします。,https://lh3.googleusercontent.com/-e-5Z2Ze6fmU/U4Q5K7nrzqI/AAAAAAAACGQ/9vdUHpxI2VA/s144/HorizontalVisibility.png)

** MouseWheelEventを親のJScrollPaneに転送する [#WheelOverNestedScrollPane]
#swingdescription(Swing/WheelOverNestedScrollPane,MouseWheelEventを親のJScrollPaneに転送する,JLayerを使って、ネストするJScrollPaneへのMouseWheelEventを転送し、スクロールが継続するように設定します。,https://lh4.googleusercontent.com/-Ax3sBgN85bo/U_DD4w3kEjI/AAAAAAAACLg/H0QTGo7hLH4/s144/WheelOverNestedScrollPane.png)

** JScrollPaneでMouseWheelによる水平スクロールを行う [#HorizontalMouseWheel]
#swingdescription(Swing/HorizontalMouseWheel,JScrollPaneでMouseWheelによる水平スクロールを行う,JScrollPaneで水平スクロールを行えるように、その内部のViewやHorizontalScrollBarにMouseWheelListenerを設定します。,https://lh4.googleusercontent.com/-4Kw_wS64XRE/VRgM0GXPtuI/AAAAAAAAN1Y/V-bAnSy4pFY/s144/HorizontalMouseWheel.png)

** JScrollPane内に配置したJPanelをマウスで拡大、縮小、移動する [#ZoomAndPanPanel]
#swingdescription(Swing/ZoomAndPanPanel,JScrollPane内に配置したJPanelをマウスで拡大、縮小、移動する,JScrollPane内に配置したJPanelを、マウスホイールを使った拡大縮小と、スクロールバーを使った表示領域の移動が可能になるように設定します。,https://lh3.googleusercontent.com/-Um9j8O0t3Kg/VYdMPIUOfwI/AAAAAAAAN7A/LAJ5KRiDdp0/s144/ZoomAndPanPanel.png)

** JScrollBarをJTable上に重ねて表示するJScrollPaneを作成する [#OverlappedScrollBar]
#swingdescription(Swing/OverlappedScrollBar,JScrollBarをJTable上に重ねて表示するJScrollPaneを作成する,半透明のJScrollBarをJTable上に重ねてレイアウトするJScrollPaneを作成します。,https://lh3.googleusercontent.com/-IHqUJwyfm8A/Vlsa4OUr4XI/AAAAAAAAOHk/QWKZO4xmtQo/s800-Ic42/OverlappedScrollBar.png)

* ↑30 ↓31 [#k56a9fe1]
#adsensebar

** FocusTraversalPolicyを使用してフォーカスを取得したコンポーネントまでスクロールする [#AutoScrollOnFocus]
#swingdescription(Swing/AutoScrollOnFocus,FocusTraversalPolicyを使用してフォーカスを取得したコンポーネントまでスクロールする,FocusTraversalPolicyを使用してフォーカスをもつコンポーネントを取得し、その全体が表示されるまでスクロールします。,https://drive.google.com/uc?id=1FEs_WslEqQzxCPS7bxq_smwC8Ao3j6-JcA)

** JScrollPane上にマウスカーソルが存在する場合のみJScrollBarを表示する [#ScrollBarOnHover]
#swingdescription(Swing/ScrollBarOnHover,JScrollPane上にマウスカーソルが存在する場合のみJScrollBarを表示する,JScrollPane上にマウスカーソルが存在する場合だけ、縦JScrollBarが表示されるように設定します。,https://drive.google.com/uc?id=19tpZyfx24XIIJHmLNjzpSlSQg_GAPDwkUA)

** JTableをスクロールバー無しのドラッグでスクロールする [#HandDragScrollableTable]
#swingdescription(Swing/HandDragScrollableTable,JTableをスクロールバー無しのドラッグでスクロールする,JTableをスクロールバーではなく、内部の行をマウスでドラッグすることでスクロール可能になるよう設定します。,https://drive.google.com/uc?id=10Tv7RlmeMiqhXBuq5fgixQ3v4KR8p5_9)

** JListがJScrollPane内に組み込まれている場合のビューポートサイズを設定する [#VisibleListSizeInScrollPane]
#swingdescription(Swing/VisibleListSizeInScrollPane,JListがJScrollPane内に組み込まれている場合のビューポートサイズを設定する,JScrollPane内に組み込まれたJListを表示するために必要なビューポートの推奨サイズを設定します。,https://drive.google.com/uc?id=1ajnMnDLpv23H17jLK5NbcE3grdfYGTtWDg)

** JScrollPaneの行ヘッダを右側に変更する [#RightSideRowHeader]
#swingdescription(Swing/RightSideRowHeader,JScrollPaneの行ヘッダを右側に変更する,JScrollPaneのレイアウトマネージャを使用して、行ヘッダをデフォルトの左側から右側に変更します。,https://drive.google.com/uc?id=1va-Vod9bidZfMkBZEMw6jIu8TQWjxNk5Mg)

** JTabbedPaneのスクロールレイアウトポリシーですべてのタブが非表示にならないよう設定する [#VisibilityOfTab]
#swingdescription(Swing/VisibilityOfTab,JTabbedPaneのスクロールレイアウトポリシーですべてのタブが非表示にならないよう設定する,JTabbedPaneをスクロールタブレイアウトポリシーにしたとき、すべてのタブが非表示になる状態を回避するための方法をテストしています。,https://drive.google.com/uc?id=1nbZldZvy1sewRvGKvkWQ79-msQqacTj9Iw)

** JListの選択色を半透明に設定する [#TranslucentList]
#swingdescription(Swing/TranslucentList,JListの選択色を半透明に設定する,JListの選択色を半透明に設定、また背景色を透明にして親パネルの背景を透かして表示します。,https://drive.google.com/uc?id=1vKNT9-SB-DsPrTxPEVYwq8FHoKQ97DYZog)

** JTableの幅が一定以下で水平スクロールバー、以上で列幅を自動拡張するよう設定 [#ScrollableTracksViewportWidth]
#swingdescription(Swing/ScrollableTracksViewportWidth,JTableの幅が一定以下で水平スクロールバー、以上で列幅を自動拡張するよう設定,JTableの幅が一定以下の場合は列幅を維持して水平スクロールバーを表示し、それ以上になる場合は列幅の自動調整を実行してJTableの幅まで拡張するよう設定します。,https://drive.google.com/uc?id=1eCpohELZxCaXX2bowhwY668e4Ww3hn326A)

** JScrollPane内のコンテンツがJViewportの幅より大きい場合その右端に影を描画する [#ViewportBorderBounds]
#swingdescription(Swing/ViewportBorderBounds,JScrollPane内のコンテンツがJViewportの幅より大きい場合その右端に影を描画する,JScrollPaneに追加したコンポーネントのコンテンツ幅がJViewportの幅より大きく、水平スクロールバーが表示される状態の場合その右端に影を表示します。,https://drive.google.com/uc?export=view&id=1lQS2oCVJtFYtbAKfXuQLKqKv1FIE2rGBkg)