0

DefaultComboBoxModel を使用して JComboBox を埋めたいと思います。

static JComboBox<Carta> cmb_cartas;
static DefaultComboBoxModel<Carta> mdl_cartas;

DefaultComboBoxModel に独自のクラス「Carta」の ArrayList を入力します

ArrayList<Carta> cartas = conOAD.getCartasPorAgregar(idConjunto);

mdl_cartas = new DefaultComboBoxModel<Carta>();

for(int i = 0; i < cartas.size(); i++) {
    Carta carta = cartas.get(i);
    mdl_cartas.addElement(carta);
}
cmb_cartas = new JComboBox<>(mdl_cartas);

コンボボックスは正しく入力されていますが、問題はオプションのテキストが表示されていることです: "modelos.Carta@3e7e084e"

テキストをクラス「Carta」の属性「nombre」に設定するにはどうすればよいですか?

4

1 に答える 1

3

You could override the toString method for your Carta class.

@Override
public String toString() {
  return this.nombre; // assumes nombre is a string
}

However, many people (rightly) frown on abusing the toString method for GUI display purposes. You could instead create a custom ListCellRenderer to render the text you want for each object.

于 2013-09-19T17:38:15.323 に答える