Java5以降なら、こんな感じでしょうか
Java
1import javax.swing.ComboBoxModel;
2import javax.swing.DefaultComboBoxModel;
3import javax.swing.JComboBox;
4import javax.swing.JPanel;
5
6public class Sample {
7
8 public static void main(String[] args) {
9 JPanel p = new JPanel();
10
11 // 実際には new DefaultComboBoxModel() 部分は個々の JComboBox固有の設定を記述する
12 ComboBoxModel[] colors = {
13 new DefaultComboBoxModel(),
14 new DefaultComboBoxModel(),
15 new DefaultComboBoxModel(),
16 new DefaultComboBoxModel()
17 };
18
19
20 for (ComboBoxModel color : colors) {
21 p.add(new JComboBox(color));
22 }
23 }
24}
25
JComboBox の取るスカラの引数は ComboBoxModelだけなので、
color という名前の意味がよくわからないことになっていますが、
止むを得ずこのような形にしています。
また、このままではワーニングがたくさんでると思いますが、
本質問の趣旨とは関係なく、とりあえずこのままでもコンパイル実行はできるので、
無視しています。
ポイントとしては、
- Collection や配列を使う
- ジェネリクスを使う
の二点になると思います。
ただ、上記リストでは for ループを使うために無理に配列にしていますが、
color1~color4 の内容が全くばらばらで、前もって保持して使いまわすといった必要のない、
一回限りのものであるならば、
for ループを使わず、
Java
1import javax.swing.DefaultComboBoxModel;
2import javax.swing.JComboBox;
3import javax.swing.JPanel;
4
5public class Sample2 {
6
7 public static void main(String[] args) {
8 JPanel p = new JPanel();
9
10 // 実際には new DefaultComboBoxModel() 部分は個々の JComboBox固有の設定を記述する
11 p.add(new JComboBox(new DefaultComboBoxModel()));
12 p.add(new JComboBox(new DefaultComboBoxModel()));
13 p.add(new JComboBox(new DefaultComboBoxModel()));
14 p.add(new JComboBox(new DefaultComboBoxModel()));
15 }
16}
と書いてしまったほうがより簡潔だと思います。