Swing/SetColumns のバックアップ(No.12)
- バックアップ一覧
 - 差分 を表示
 - 現在との差分 を表示
 - 現在との差分 - 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)
 
 
- category: swing
folder: SetColumns
title: JComboBoxなどの幅をカラム数で指定
tags: [JTextField, JPasswordField, JSpinner, JComboBox]
author: aterai
pubdate: 2006-12-18T16:11:14+09:00
description: JTextField,JPasswordField,JSpinner,JComboBoxの幅をカラム数で指定して比較しています。
image: 

 
概要
JTextField,JPasswordField,JSpinner,JComboBoxの幅をカラム数で指定して比較しています。
Screenshot

Advertisement
サンプルコード
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);
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは、要素が空のJComboBoxなどのカラム幅を同じ(20文字分の幅)にして(下二つはdefaultのまま)、以下のような順番で並べています。
JTextField#setColumns(20)JPasswordField#setColumns(20)JSpinner#setColumns(20)JComboBox#setEditable(true),JComboBox#setColumns(20)JComboBox#setEditable(true),defaultJComboBox#setEditable(false),default
- スクリーンショット左: 
JDK 1.6.0、WindowsLookAndFeelsetColumns(20)を設定した入力欄の幅は揃っているJComboBoxでsetColumnsを使用していないデフォルトの状態では、モデル中のアイテムから最大の幅が適用される- モデルが空の場合はJComboBoxのセルサイズを決定するためのプロトタイプ値を設定するのようにプロトタイプ値を設定しておく必要がある
 
 - スクリーンショット右: 
JDK 1.5.0_10、WindowsLookAndFeel- 各入力欄の幅、高さ、余白が不揃い
JTextFieldの左内余白が広すぎるJComboBoxなどの左内余白が狭すぎる
 - レイアウトマネージャーで工夫するか、
setPreferredSize(Dimension)を使って幅を揃える必要がある 
 - 各入力欄の幅、高さ、余白が不揃い