• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*JTextFieldのMarginを設定する [#m4b2abe7]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2005-06-06~
更新日:&lastmod;
---
category: swing
folder: TextFieldMargin
title: JTextFieldのMarginを設定する
tags: [JTextField, UIManager, Border]
author: aterai
pubdate: 2005-06-06T00:34:45+09:00
description: JTextFieldにMargin、または二重のBorderを設定して、内余白の変化をテストします。
image: https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTVM2PvsXI/AAAAAAAAAnQ/3wxfaHXrEUk/s800/TextFieldMargin.png
---
* 概要 [#summary]
`JTextField`に`Margin`、または二重の`Border`を設定して、内余白の変化をテストします。

#contents
**概要 [#e2b43068]
JTextField内部の余白を設定します。
#download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTVM2PvsXI/AAAAAAAAAnQ/3wxfaHXrEUk/s800/TextFieldMargin.png)

http://terai.xrea.jp/swing/textfieldmargin/screenshot.png
* サンプルコード [#sourcecode]
#code(link){{
Insets m = UIManager.getInsets("TextField.margin");
InsetsUIResource iur = new InsetsUIResource(m.top, m.left + 5, m.bottom, m.right);
UIManager.put("TextField.margin", iur);

**サンプルコード [#h76ab388]
 Insets m = (Insets) UIManager.get("TextField.margin");
 InsetsUIResource iur = new InsetsUIResource(m.top,m.left+5,m.bottom,m.right);
 UIManager.put("TextField.margin", iur);
 
 Insets m = field01.getMargin();
 Logger.global.info(m.toString());
 Insets margin = new Insets(m.top,m.left+10,m.bottom,m.right);
 field01.setMargin(margin);
 
 Border b1 = BorderFactory.createEmptyBorder(0,20,0,0);
 Border b2 = BorderFactory.createCompoundBorder(field02.getBorder(), b1);
 field02.setBorder(b2);
Insets m = field01.getMargin();
Insets margin = new Insets(m.top, m.left + 10, m.bottom, m.right);
field01.setMargin(margin);

-[[サンプルを起動>http://terai.xrea.jp/swing/textfieldmargin/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/textfieldmargin/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/textfieldmargin/src.zip]]
Border b1 = BorderFactory.createEmptyBorder(0, 20, 0, 0);
Border b2 = BorderFactory.createCompoundBorder(field02.getBorder(), b1);
field02.setBorder(b2);
}}

**解説 [#q40dbf8e]
-一番上
--UIManager.put()ですべてのJTextFieldの余白を指定しています。
-真ん中
--setMargin()で余白を指定しています。
-一番下
--setBorder()で余白を指定しています。
* 解説 [#explanation]
以下のサンプルでは、それぞれ左側の内余白のサイズのみを変更しています。

上記のサンプルでは、それぞれ左余白のサイズのみを変更しています。
// javax.swing.plaf.InsetsUIResource[top=2,left=7,bottom=2,right=2]

**参考リンク [#l13dc690]
-[[JTextField内にアイコンを追加>Swing/IconTextField]]
-[[JComboBoxにアイコンを表示>Swing/IconComboBox]]
- 上: `UIManager.put()`ですべての`JTextField`の余白を指定
-- `getMargin().left`: `7px`
-- `getInsets().left`: `8px`
-- `getBorder().getBorderInsets(c).left`: `8px`
- 中: 「上(`UIManager.put()`)」と`setMargin()`で余白を指定
-- `getMargin().left`: `17px`
-- `getInsets().left`: `18px`
-- `getBorder().getBorderInsets(c).left`: `18px`
- 下: 「上(`UIManager.put()`)」と`setBorder()`で余白を指定
-- `getMargin().left`: `7px`
-- `getInsets().left`: `28px`
-- `getBorder().getBorderInsets(c).left`: `28px`

**コメント [#z463c6ec]
* 参考リンク [#reference]
- [[JTextField内にアイコンを追加>Swing/IconTextField]]
- [[JComboBoxにアイコンを表示>Swing/IconComboBox]]

* コメント [#comment]
#comment
#comment