Swing/SetColumns のバックアップ(No.2)
- バックアップ一覧
 - 差分 を表示
 - 現在との差分 を表示
 - 現在との差分 - Visual を表示
 - ソース を表示
 - Swing/SetColumns へ行く。
  
- 1 (2006-12-18 (月) 16:11:14)
 - 2 (2007-06-26 (火) 14:52:56)
 - 3 (2008-03-12 (水) 19:34:47)
 - 4 (2008-03-21 (金) 19:29:25)
 - 5 (2008-03-30 (日) 02:58:17)
 - 6 (2008-03-31 (月) 14:06:58)
 - 7 (2014-10-03 (金) 14:06:47)
 - 8 (2015-05-18 (月) 00:01:14)
 - 9 (2017-03-10 (金) 18:12:42)
 - 10 (2018-01-13 (土) 19:53:38)
 - 11 (2018-09-06 (木) 13:11:25)
 - 12 (2020-08-28 (金) 15:52:41)
 - 13 (2022-02-25 (金) 15:12:12)
 - 14 (2025-01-03 (金) 08:57:02)
 - 15 (2025-01-03 (金) 09:01:23)
 - 16 (2025-01-03 (金) 09:02:38)
 - 17 (2025-01-03 (金) 09:03:21)
 - 18 (2025-01-03 (金) 09:04:02)
 - 19 (2025-06-19 (木) 12:41:37)
 - 20 (2025-06-19 (木) 12:43:47)
 
 
TITLE:JComboBoxなどの幅をカラム数で指定
JComboBoxなどの幅をカラム数で指定
編集者:Terai Atsuhiro
作成日:&date
更新日:2022-02-25 (金) 15:12:12
概要
JTextField,JPasswordField,JSpinner,JComboBox の幅をカラム数で指定して比較しています。
#screenshot
#screenshot(,screenshot_.png)
サンプルコード
 JTextField field      = new JTextField(20);
 JPasswordField passwd = new JPasswordField(20);
 JSpinner.DefaultEditor e = (JSpinner.DefaultEditor)spinner.getEditor();
 e.getTextField().setColumns(20);
 combo1.setEditable(true);
 Component c = combo1.getEditor().getEditorComponent();
 if(c instanceof JTextField) ((JTextField)c).setColumns(20);
- &jnlp;
 - &jar;
 - &zip;
 
解説
上記のサンプルでは、要素が空のJComboBoxなどのカラム幅を同じにして*1、以下のような順番で並べています。
- JTextField [setColumns(20)]
 - JPasswordField [setColumns(20)]
 - JSpinner [setColumns(20)]
 - JComboBox [setEditable(true), setColumns(20)]
 - JComboBox [setEditable(true), default]
 - JComboBox [setEditable(false), default]
 
スクリーンショットは、左(上)が 1.6.0(Java SE 6) で、右(下)が、1.5.0_10 で実行したものになっています(どちらもWindows LnF)。1.6.0 ではきれいに揃っていますが、1.5.0_10 などでは幅も高さも余白もガタガタなので、レイアウトマネージャーで工夫するか、setPreferredSize(Dimension)を使って幅を揃える方がよさそうです(JButtonなどの高さを変更せずに幅を指定)。