JComboBox - wie getSelectedItem() überschreiben?

JavaMeetsBlueJ

Bekanntes Mitglied
Hallo,
das Problem ist eigentlich schon im Titel, ich habe mal im Bild unten den Sachverhalt "skizziert". Ich möchte über die Auswahl einen Index einer ArrayList ansprechen, um von dort aus eine Kopie davon zu erstellen und diese einem Konstruktor zu übergeben. Ich weiß nur nicht wie ich das bewerkstelligen soll, da die Methode ja ein Objekt zurückliefert.

Gruß


[OT]Auch wenn im Bild keine Kopie erstellt wird und es nicht String.temp sondern String temp heißen soll, sollte der Sachverhalt klar sein🙂[/OT]
 

Anhänge

  • ComboBoxAuswahlProblem.png
    ComboBoxAuswahlProblem.png
    24 KB · Aufrufe: 45
Zuletzt bearbeitet:
Ich versteh nicht so ganz was dein Problem ist und ComboBoxModel hat keine Methode names getSelectedIndex(), nur getSelectedItem().
An den Index kämst du über deine JComboBox mit getSelectedIndex() und an den Wert über die JComboBox oder das ComboBoxModel über getSelectedItem(), wenn das hilft.
 
Ich habe irgendwie nur Proleme mit diesem Ding. Wieso übernimmt es die Auswahl nicht in das Feld?
Bei mir sieht in etwa so aus.
Kann mir da jemand helfen? Falls Code beötigt wird, editier ich den einfach hinterer.

Combobox2 ist während des klicks auf den Pfeil und Combobox3 nach einem Klick auf einen Auswahlpunkt.
Gruß
 

Anhänge

  • ComboBox3.png
    ComboBox3.png
    590 Bytes · Aufrufe: 36
  • ComboBox_2.png
    ComboBox_2.png
    1,3 KB · Aufrufe: 26
Zuletzt bearbeitet:
Nein die ist noch nicht überschrieben, das ist meine erste ComboBox mit dem Model und ich weiß nicht wie ich das machen soll... .Hier mal der Code.

Java:
public class LehrerCheckBox implements ComboBoxModel{

	ListDataListener listener;
	
	 ArrayList <Lehrer> lehrerListe = new ArrayList <Lehrer> ();
	
        @Override
	public void addListDataListener(ListDataListener listener) {
		this.listener = listener;
		
	}

	@Override
	public Object getElementAt(int rowIndex) {
		
		return lehrerListe.get(rowIndex).toString();
	}

	@Override
	public int getSize() {
		
		return lehrerListe.size();
	}

	@Override
	public void removeListDataListener(ListDataListener listener) {
		listener = null;
		
	}

	@Override
	public Object getSelectedItem() {
		
		return null;
	}

	@Override
	public void setSelectedItem(Object object) {
		// TODO Auto-generated method stub
		
	}
	
	
	
	public void addLehrer(Lehrer lehrer){
		lehrerListe.add(lehrer);
		fireContentsChanged(this, 1, 1);
	}
	
	public void removeLehrer(int index){
		lehrerListe.remove(index);
		fireContentsChanged(this, 1, 1);
	}

	protected void fireContentsChanged(Object source, int von, int bis)
    {
        ListDataEvent event = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED, von, bis);
        listener.contentsChanged(event);
    }

	
}

Gruß
 
Hier und hier siehst du, wie es ungefähr funktioniert, ich weiss es selbst nicht, weil ich noch nie ein ComboBoxModel schreiben musste. Wenn du einfach Objekte darin speichern möchtest, wäre das default model doch völlig ausreichend, oder?

Btw: Bei getElementAt müsstest du das toString wegnehmen.
 
Also mit toSring() funktioniert das. Leiegt wohl daran, dass ein String aj auch nur ein Objekt ist. ich werde den Links mal folgen, und gucken wie's geht. Das DefaultModle guck ich mir auch mal an.

Gruß
 

Zurück
Oben