ボタンのサイズをピクセル単位で設定する

ボタンのサイズは、ボタンに表示される文字列や画像の大きさにあらかじめ決まりますが、ピクセル単位でサイズを指定することもできます。ここではボタンにピクセル単位でサイズを設定する方法について解説します。

(2022 年 04 月 11 日公開 / 2022 年 04 月 11 日更新)

ピクセル単位でサイズを設定する

ボタンのサイズをピクセル単位で設定するには JButton クラスの親クラスである JComponent クラスで用意されている setPreferredSize メソッドを使います。

public void setPreferredSize(Dimension preferredSize)

このコンポーネントの適切なサイズを設定します。 preferredSizeがnullの場合、UIで適切なサイズを要求します。

オーバーライド:
setPreferredSize 、クラス: Component

パラメータ:
preferredSize - 新しい推奨サイズ、またはnull

引数にはサイズを表す Dimension クラスのオブジェクトを指定します。( Dimension クラスの詳細は「Dimensionクラス」を参照して下さい)。

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

JButton button = new JButton("OK");
button.setPreferredSize(new Dimension(200, 100));

コンポーネントでサイズを設定する場合、使用しているレイアウトマネージャーによってはコンポーネントに設定したサイズは無視される場合がありますのでご注意ください。例えばレイアウトマネージャーとして BorderLayout を使用している場合はコンポーネントに設定されたサイズは無視されます。

なおサイズを指定することによってボタンに設定した文字列を全て表示できなくなる場合があります。その場合は文字列が "..." などのように置き換えられて表示されます。

サンプルプログラム

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample5_1.java という名前で保存します。

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Dimension;

class JSample5_1 extends JFrame{
  public static void main(String args[]){
    JSample5_1 frame = new JSample5_1("MyTitle");
    frame.setVisible(true);
  }

  JSample5_1(String title){
    setTitle(title);
    setBounds(100, 100, 600, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JButton button1 = new JButton("Push Button");
    JButton button2 = new JButton("Push Button");
    button2.setPreferredSize(new Dimension(300, 100));
    JButton button3 = new JButton("Push Button");
    button3.setPreferredSize(new Dimension(60, 40));

    JPanel p = new JPanel();
    p.add(button1);
    p.add(button2);
    p.add(button3);

    Container contentPane = getContentPane();
    contentPane.add(p, BorderLayout.CENTER);
  }
}

次のようにコンパイルを行います。

javac JSample5_1.java

ピクセル単位でサイズを設定する(1)

コンパイルが終わりましたら実行します。

java JSample5_1

ボタンを 3 つ追加しました。 1 つ目のボタンはデフォルトのまま、 2 つ目と 3 つ目のボタンはサイズをピクセル単位で指定しています。

ピクセル単位でサイズを設定する(2)

3 つ目のボタンはピクセル単位でのサイズ指定によってボタンに設定されている文字列が表示しきれなくなっています。その為、表示できない部分は "..." と表示されています。

-- --

ボタンにピクセル単位でサイズを設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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