2013-08-12 3 views
0

Чтобы сделать элемент, у меня есть jcomboboxes в jform, где вы можете выбрать некоторые параметры, и когда вы хотите редактировать что-то, некоторые значения объекта (toString) отображаются в jcombobox в другой jform с выбранным значением , Но он не хочет отображать значения в поле со списком. Я хочу, чтобы показать имя + ПгвЬЫат в поле со списком (ToString)setSelectedItem to jcombobox

try { 
    ak = pdb.seekPerson(v.getBuyerId()); 
    coKoper.removeAllItems(); 
} catch (ApplicationException ae) { 
    javax.swing.JOptionPane.showMessageDialog(this, ae.getMessage()); 
} 

initiateCombo(); //adds the objects tot the combo 
coBuyer.setSelectedItem(ak.toString()); 
} 

    private void initiateCombo() { 
     PersonDB pdb = new PersonDB(); 
     try { 
      ArrayList<Persons> buyer = pdb.seekAllBuyers(); 
      for (Persons p : buyer) { 
       coBuyer.addItem(p); 
      } 
} 

ответ

0

Ну, вы пытаетесь переопределить метод toString() вашего класса Persons?
Что-то вроде:

@Override 
public String toString() { 
    return name + " " + firstname ; 
} 

Кроме того, использовать setSelectedItem как это (я полагаю, ak является экземпляром Persons):

coBuyer.setSelectedItem(ak); 

Не забудьте переопределить метод equals(Object o);)

@Override 
public boolean equals(Object o) { 
    if(o instanceof Persons){ 
    boolean check = /* here your own code*/; 
    return check; 
    } 
    return false ; 
} 
+0

Где мне нужно переопределить метод equals? в классе формы или в классах лиц? –

+0

В классе 'Персоны', я отредактировал :) – NiziL

+0

Спасибо за вашу помощь уже, но я не знаю, что мне нужно написать в методе equals, поэтому, если бы вы могли мне помочь. –

0

Похоже coBuyer выпадающими содержат объекты чел. Вы извлекаете объект Персоны, который хотите выбрать, и сохраните его в ak.

Совокупность будет отображать метод toString() объекта Персоны. По умолчанию отображается Object.toString(). Вам нужно @Override toString() в классе Person и вернуть ему имя + имя или любое другое, что вы хотите отобразить.

+1

У меня есть это @Override public String toStri ng() { StringBuilder bf = new StringBuilder (имя + "" + имя + "\ n"); return bf.toString(); } –

Смежные вопросы