インセットの値を取得する

広告

他のクラスのメソッドなどを使った結果、Insetsクラスのオブジェクトを取得する場合があります。取得したオブジェクトから上左下右の各インセットの値を取得する方法を確認します。

Insetsクラスでは各値を取得するためのメソッドは用意されていませんが、各値を表すフィールドが用意されています。

フィールド説明
public int top上部からのインセットです。この値が矩形の Top に追加され、Top の新しい位置となります。
public int left左側からのインセットです。この値が矩形の Left に追加され、Left の新しい位置となります。
public int bottom下部からのインセットです。この値が矩形の Bottom から減算され、Bottom の新しい位置となります。
public int right右側からのインセットです。この値が矩形の Right から減算され、Right の新しい位置となります。

これらのフィールドを参照することでオブジェクトに保持されている上左下右の各インセットの値を取得することが出来ます。

実際には次のように使用します。

Insets insets = new Insets(10, 10, 10, 10);
int top = insets.top;
int left = insets.left;
int bottom = insets.bottom;
int right = insets.right;

サンプルプログラム

では実際に試してみましょう。今回は基準となるボタンに設定されているInsetsクラスのオブジェクトを取得して、上左下右それぞれインセットの値を増加させた新しいInsetsクラスのオブジェクトを作成し別のボタンに設定しています。

JInsetsTest2.java

import javax.swing.*;
import java.awt.Insets;
import java.awt.BorderLayout;

public class JInsetsTest2 extends JFrame{

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

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

  JInsetsTest2(){
    JButton button1 = new JButton("Button");
    Insets insets1 = button1.getMargin();

    JButton button2 = new JButton("Button");

    int newtop = insets1.top + 10;
    int newleft = insets1.left + 10;
    int newbottom = insets1.bottom + 10;
    int newright = insets1.right + 10;
    Insets insets2 = new Insets(newtop, newleft, newbottom, newright);
    button2.setMargin(insets2);

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

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

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

上左下右の各インセットの値を取得する

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)