私はarray
という名前Object[]
のフィールドを作成:JComboBoxの配列が更新されないのはなぜですか?
private Object[] array;
をそして私は次元でそれを開始し、方法AにそれにJComboBox
を追加します。
array = new Object[14];
array[0] = combo1;
array[1] = combo2;
....
その後、私はこれらのデータモデルを変更方法BにおけるJComboBox
、changeCombo
。 updateCombo(data)
がある
private JComboBox<String> changeCombo(String newOption, JComboBox<String> combo, Set<String> data) {
if (combo != null) {
int size = combo.getModel().getSize();
data.add(newOption);
if (size != data.size()){
combo = updateCombo(data);
}
return combo;
}
}
:最後に
private JComboBox<String> updateCombo(Set<String> dataSet) {
JComboBox<String> combo = new JComboBox<String>();
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
model.insertElementAt(Constantes.COMBO_TEXT_TODOS, 0);
for (String s: dataSet) {
model.addElement(s);
}
combo.setModel(model);
combo.setSelectedIndex(0);
combo.addItemListener(new ComboItemListener());
return combo;
}
は、私が唯一、すべてのJComboBoxのを見つけるために、方法Cで再びこの配列を呼び出すには、その中にデータを持ちません。
for (int i=0; i<14; i++){
TableColumn col = table.getColumnModel().getColumn(i);
col.setCellEditor(new DefaultCellEditor((JComboBox<String>)(array[i])));
//here I found the data collection in each combo is empty
col.setCellRenderer(new ComboRenderer());
}
私の場合、配列は不変ですか?またはこれらのJComboBoxは不変ですか? updateComboで
「combo1」と「combo2」とは何ですか? –
私はちょうど 'JComboBox combo1 = new JComboBox();'などの最初の部分でそれらを作成します。 – FaithReaper
'changeCombo'メソッドの' combo'引数はどこから来ますか?それは 'array'にどのように接続されていますか? –