枠線を設定する

広告

スクロールペインの枠線の設定を行う方法を確認します。枠線の設定を行うにはJScrollPaneクラスの親クラスであるJComponentクラスで用意されている「setBorder」メソッドを使います。

public void setBorder(Border border)

このコンポーネントのボーダーを設定します。Border オブジェクトは、コンポー
ネントのインセットを定義し (コンポーネントで直接設定されているインセット
をオーバーライドする)、任意でそれらのインセットの境界内のボーダー装飾を
描画します。Swing コンポーネントで装飾領域および非装飾領域 (マージンお
よびパディングなど) の両方を生成するには、インセットではなくボーダーを
使用する必要があります。単一のコンポーネント内で複数のボーダーを入れ子
にするには、複合ボーダーを使用できます。

技術的には JComponent を継承するどのオブジェクトにもボーダーを設定できま
すが、標準の Swing コンポーネントの Look & Feel の実装の多くは、ユーザー
設定のボーダーでは正しく動作しません。通常、JPanel または JLabel 以外の
標準の Swing コンポーネントでボーダーを設定するときは、コンポーネントを 
JPanel に入れて、JPanel でボーダーを設定することをお勧めします。

これはバウンドプロパティーです。

パラメータ:
  border - このコンポーネントで描画されるボーダー

引数には枠線を表すクラスであるBorderインターフェースを実装したクラスのオブジェクトを指定します。Borderインターフェースについては『Borderインターフェース』を参照して下さい。

実際の使い方は次のようになります。

JScrollPane scrollpane = new JScrollPane();

Border panel = new BevelBorder(BevelBorder.RAISED);
scrollpane.setBorder(border);

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JScrollPaneTest5.java

import javax.swing.*;
import java.awt.Dimension;
import java.awt.BorderLayout;
import javax.swing.border.*;

public class JScrollPaneTest5 extends JFrame{

  public static void main(String[] args){
    JScrollPaneTest5 frame = new JScrollPaneTest5();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JScrollPaneTest5(){
    JTextArea textarea = new JTextArea("JTextAreaを配置");

    JScrollPane scrollpane = new JScrollPane(textarea);
    scrollpane.setPreferredSize(new Dimension(200, 120));

    Border border = new BevelBorder(BevelBorder.RAISED);
    scrollpane.setBorder(border);

    JPanel panel = new JPanel();
    panel.add(scrollpane);

    getContentPane().add(panel, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JScrollPaneで枠線を設定する

JScrollPaneで枠線を設定する

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。