JavaのJScrollBarとJScrollPaneの違いとは?特徴と使い方を解説
JScrollBarはコンポーネントであり、自身のイベントを処理しません。一方、JScrollPaneはコンテナ(Container)であり、自身のイベントを処理するとともに、スクロール操作も自ら行います。また、JScrollBarの中にJScrollPaneを配置することはできませんが、JScrollPaneの中にJScrollBarを配置することは可能です。
JScrollBarとは
- JScrollBarクラスのオブジェクトは、水平方向および垂直方向のスクロールバーを追加するために使用されます。これにより、ユーザーは指定された最小値から最大値までの範囲で項目を選択できるようになります。
- JScrollBarクラスはスクロールバーの実装クラスであり、JComponentクラスを継承しています。
構文
public class JScrollBar extends JComponent implements Adjustable, Accessible
コード例
import javax.swing.*;
import java.awt.*;
public class JScrollBarTest extends JFrame {
JScrollBarTest() {
setTitle("JScrollBar Test");
JScrollBar jsb = new JScrollBar();
setLayout(new FlowLayout());
add(jsb);
setSize(350, 275);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new JScrollBarTest();
}
}
実行結果

JScrollPaneとは
- JScrollPaneは、コンポーネントのスクロール可能なビューを作成するために使用されます。
- スクロールペインはJScrollPaneクラスのオブジェクトであり、JComponentクラスを継承しています。
- 画面サイズが限られている場合、大きなコンポーネントや、サイズが動的に変化するコンポーネントを表示するためにスクロールペインが活用されます。
- JScrollPaneクラスの主なメソッドには、
setColumnHeaderView()、setRowHeaderView()、setViewportView()などがあります。
コード例
import javax.swing.*;
import java.awt.*;
public class JScrollPaneTest extends JFrame {
JScrollPaneTest() {
setTitle("JScrollPane Test");
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JScrollPane jsp = new JScrollPane(panel,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
add(jsp);
setSize(350, 275);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JScrollPaneTest();
}
}
実行結果

-
JavaのJFrameとJDialogの違いとは?特徴と使い分けを解説
JavaのSwingには、ウィンドウを表示するためのトップレベルコンテナとしてJFrameとJDialogが用意されています。どちらもよく似た役割を持ちますが、動作や用途には重要な違いがあります。この記事では、それぞれの特徴をサンプルコードとともに解説し、最後に使い分けのポイントをまとめます。 JFrameとは フレームに追加されたコンポーネントは「コンテンツ」として扱われ、contentPaneによって管理されます。JFrameにコンポーネントを追加する際は、フレーム本体ではなくcontentPaneに対して追加する必要があります。 JFrameは、タイトル、境界線、(オプションで)メニュ
-
JavaのGridLayoutとGridBagLayoutの違いを徹底解説!特徴と使い分けのポイント
JavaのAWT/Swingには複数のレイアウトマネージャーが用意されていますが、その中でもGridLayoutとGridBagLayoutは、コンポーネントを格子状(グリッド)に配置するという点でよく似ています。しかし、両者には重要な違いがあります。 GridLayoutは、すべてのコンポーネントを矩形のグリッド内に配置し、領域を同じサイズの長方形に分割して、各コンポーネントをそれぞれのセルの中に収めます。一方、GridBagLayoutは柔軟性の高いレイアウトマネージャーであり、コンポーネントのサイズを揃えることなく、縦方向・横方向に整列させて配置できます。各GridBagLayoutオブ