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
  2. JPasswordField
  3. JSpinner
  4. JComboBox [setEditable(true), setColumns(20)]
  5. JComboBox [setEditable(true), default]
  6. JComboBox [setEditable(false), default]

スクリーンショットは、上が 1.6.0 で、下が、1.5.0_10 で実行したものになっています(どちらもWindows LnF)。

1.6.0 ではきれいに揃っていますが、1.5.0_10 などでは、レイアウトマネージャーで工夫するか、setPreferredSize(Dimension)を使って幅を揃える方がよさそうです(JButtonなどの高さを変更せずに幅を指定)。

コメント