public class MyComboBox extends JComboBox {
class MyComboRenderer extends JPanel implements ListCellRenderer
{
public Component getListCellRendererComponent(JList arg0, Object arg1, int arg2, boolean arg3, boolean arg4) {
MyListItem lstItem = (MyListItem)arg1;
return lstItem;
}
}
class MyListItem extends JPanel
{
private int ID = 0 ;
private String Teilnehmer = null ;
private String Firma = null;
private JLabel lblTeilnehmer = null ;
private JLabel lblFirma = null;
public MyListItem(int ID, String Teilnehmer, String Firma)
{
this.ID = ID;
this.Teilnehmer = Teilnehmer ;
this.Firma = Firma;
this.setLayout(new GridLayout());
lblTeilnehmer = new JLabel(Teilnehmer) ;
lblFirma = new JLabel(Firma);
this.add(lblTeilnehmer, BorderLayout.WEST);
this.add(lblFirma, BorderLayout.CENTER);
lblTeilnehmer.setOpaque(true);
lblFirma.setOpaque(true);
}
public int getID()
{
return ID;
}
public String getTeilnehmer(){
return Teilnehmer;
}
public String getFirma(){
return Firma;
}
}
private DefaultComboBoxModel cboModel = new DefaultComboBoxModel();
public MyComboBox(){
super();
this.setModel(cboModel);
}
public int getID()
{
try{
return ((MyListItem)this.getSelectedItem()).getID();
}
catch(Exception e){
return 0;
}
}
public String getTeilnehmer(){
return ((MyListItem)this.getSelectedItem()).getTeilnehmer();
}
public String getFirma(){
return ((MyListItem)this.getSelectedItem()).getFirma();
}
public void addItem(int ID, String Teilnehmer, String Firma) {
cboModel.addElement(new MyListItem(ID, Teilnehmer, Firma));
setRenderer(new MyComboRenderer());
}
public void removeSelectedItem(){
cboModel.removeElementAt(getSelectedIndex());
}
public void removeAllItems(){
cboModel.removeAllElements();
setRenderer(new MyComboRenderer());
}
public int getIndexOfID(int ID){
for(int i = 0; i < cboModel.getSize(); i++){
setSelectedIndex(i);
if(getID() == ID){
return i;
}
}
return -1;
}
public int getIndexOfText(String Teilnehmer){
for(int i = 0; i < cboModel.getSize(); i++){
setSelectedIndex(i);
if(getTeilnehmer().equals(Teilnehmer)){
return i;
}
}
return -1;
}
}