History mit JComboBox

eagle

Mitglied
Hallo zusammen,

weiss jemand wie ich es anstellen kann, einen Text in die JComboBox einzugeben?
Dabei soll nicht der erste eintrag ausgwählt werden, wenn der eintrag nicht in der Liste ist.

Beispiel:
inhalt der ComboBox:
  • 1
  • 2
  • 3
  • 4
nun möchti ich in der comboBox aber eine 5 eingeben können. Die nachfolgenden Abläufe 5 und nicht 1 verwenden und bietet die zur auswahl. Ähnlich wie dies im internet explorer oder firefox bei den links der fahl ist.
Die liste zeigt also nur die zulezt eingegebenen werte an.


greez Eagle
 
Ok das problem versteh ich jetzt nicht ganz.

aber die JComboBox füllst du mit addItem dann steht in der JCombobox
halt JComboBox.addItem("1");
JComboBox.addItem("2"); usw

Und wenn du ein neuen wert dazu eingibst und denn dann auch in der JCombobox sehen willst kannst du ja sowas hier machen
Code:
jComboBox.addActionListener(new java.awt.event.ActionListener() { 
 		    	public void actionPerformed(java.awt.event.ActionEvent e) {	
 		    	 if (e.getActionCommand() == "comboBoxEdited") {
 		    		    if(jComboBox.getSelectedIndex() == -1){
 		    		    	jComboBox.addItem(jComboBox.getSelectedItem());
 						}
 					}
 				}
 			});
so ich hoffe das ist das was de suchst.
 
Zuletzt bearbeitet:
Danke für die Antwort,

leider ist es nicht das was ich suche.

nochmals zum Problem:
Ich habe eine JComboBox mit diversen Einträgen darin.
Die Einträge werden von aussen der JComboBox zugewiesen, nur dann wenn mit der Nummer etwas angefangen werden kann.
Nun möchte ich dass man entweder eine Nummer aus der JComboBox-DropDownListe auswählen kann oder eine eigene Eingeben.
Falls man eine selbst eingeben möchte und sie noch nicht in der Liste vorhanden ist, sollte sie nicht von einem Eintrag in der Liste überschrieben werden.
Wenn nun Enter gedrückt wird, sucht das Programm in der DB nach dem wert welcher in der ComboBox steht. Sollte er gefunden werden, wird er der ComboBox angehängt und kommt in die DropDown-Liste. Ansonsten bleibt die Liste unverändert.

Ich muss also in den Editor der ComboBox etwas eingeben können was nicht gleich von der ComboBox mit einem ähnlichen Eintrag der Liste ersetzt wird.

greez Eagle
 
ich würde das mit dem action listener machen
Code:
   jComboBox.addActionListener(new java.awt.event.ActionListener() { 
 		 	public void actionPerformed(java.awt.event.ActionEvent e) {	
   		    	 if (e.getActionCommand() == "comboBoxEdited") {
 		 		 if(jComboBox.getSelectedIndex() == -1){
                                          /*halt hier die abfrage ob der wert schon in der Liste drine steht
                                          *wenn ja weist du ja das das in der db enthält weil ja die
                                          *werte aus der lsite kommen
                                          if(list.contains(jComboBox.getSelectedItem)){
                                          //ok wert ist nicht neu
                                          //entweder jetzt die suche oder sonst de was
                                          else{
                                             //eintrag nicht in der liste, suchen in DB und gefundener Wert
                                             //in die liste(für neu start oder so was) und in die JComboBox
                                               jComboBox.addItem(DBsearch());  
                                          } 
  					  
   					
   				    }
   				}
   			});
so stell ich mir das vor.
warte das enter ab mit
Code:
 (e.getActionCommand() == "comboBoxEdited")
dann frag ich nach ob der wert in der liste ist wenn ja mach halt was wie in db suchen und wert anzeigen und wenn nein weißt du ja das der wert neu ist.
und dann kannst du suchen in der DB was du findest kannst du dann ja in die combobox reinlegen.

so weiter kann ich dir auch nicht helfen, weil wenn das es nicht ist weiß ich nicht so genau was du machen willst soory
 
Moin,
noch ein Tip: Üblicherweise speichert man keine Strings in ComboBoxen sondern Objekte. Den anzuzeigenden Text stellt man dann mit der toString()-Methode dieser Objekte dar.
Das vereinfacht die weitere Verarbeitung mit dem ausgewählten Item.
 
Zurück