インセットの値を取得する
広告
他のクラスのメソッドなどを使った結果、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クラスのオブジェクトを作成し別のボタンに設定しています。
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 )
Profile
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。