Wert zu Eintrag in ComboBox speichern?!

FfH

Mitglied
Hallo liebe Forengemeinde,

ich hab mal eine Frage bezüglich einer Combobox. Ist es möglich, zu einem Eintrag in einer ComboBox einen Wert zu speichern, den man bei Selektion auslesen kann?

Bsp.
Ich habe 7 Wochentage:
0 = Montag
1 = Dienstag
...
6 = Sonntag

Nun möchte ich in einer ComboBox die "Bezeichnung" (Montag, Dienstag...) schreiben (Was kein Problem ist). Beim auslesen der Selektion möchte ich nun aber die Zahl erhalten um damit arbeiten zu können.

Ist dies möglich oder kennt jemand eine geschickte Lösung in Java 1.6?

Danke schonmal im Voraus
Gruß
 

eRaaaa

Top Contributor
Wie wäre es in deinem Fall einfach mit [c]getSelectedIndex()[/c] ?

Ansonsten kann man eben auch, anstatt da Strings in die Box abzulegen, Objekte einer eigenen Klasse ablegen. Diese beinhaltet dann eine ID + String und hat entsprechende getter-Methoden + evtl. toString() überschrieben.
 

FfH

Mitglied
Hallo,

danke für die Anregungen. :)
Die Methode
Java:
getSelectedIndex()
liefert mir (laut Namen) wahrscheinlich die selektierte Zeile zurück. Dadurch bekäme ich allerdings Probleme, falls ich die Liste anders sortieren möchte...

Ich probiere mal das mit der Klasse, vielen Dank für den Tipp :applaus:
 

FfH

Mitglied
Hallo Zusammen,

ich habe jetzt mal probiert ein Objekt in die ComboBox zu schieben, habe da allerdings ein paar Probleme.

Ich habe mal gegoogelt und folgenden Code gefunden, mit dem ich nicht klar komme!

Java:
import java.awt.Component;

import javax.swing.*;

public class MyCellRenderer 
extends DefaultListCellRenderer
implements ListCellRenderer  
{    
    // ListCellRenderer-Implementierung ----------------------------------------
    public Component getComboBoxCellRendererComponent(JComboBox box, Object value,
            int index, boolean isSelected, boolean cellHasFocus) {
        
        if(value instanceof faecher) {
            faecher myFach = (faecher)value;
            setText(myFach.BEZ);
        } else {
            setText(value.toString());
        }
        
        return this;
    }  
}

Desweiteren habe ich hier eine Klasse "test" und "WochenTag".
Ich ermittle hier zunächst, welcher Wochentag ausgegeben werden soll und gebe den im Anschluss aus. Das Objekt "tag" das ich hier ausgebe, würde ich gerne in die ComboBox schreiben, damit ich an den Wert in "tag.DayNumber" komme. Wie muss ich das in Verbindung mit oben genannter Methode aufrufen?
Java:
public class test 
{
	public static void main(String[] args) {
		WochenTag tag = new WochenTag(1);
		tag.ausgabe();
	}
}

Java:
public class WochenTag {
	private String 	Day;
	private int 	DayNumber;
	
	
	public WochenTag(int _DayNumber){
		this.DayNumber = _DayNumber;
		setDay();
	}
	
	private void setDay(){
		switch(this.DayNumber){
			case 0:
				Day = "Montag";
				break;
			case 1:
				Day = "Dienstag";
				break;
			case 2:
				Day = "Mittwoch";
				break;
			case 3:
				Day = "Donerstag";
				break;
			case 4:
				Day = "Freitag";
				break;
			case 5:
				Day = "Samstag";
				break;
			case 6:
				Day = "Sonntag";
				break;
			
			default: 
				Day = "Error";
		}	
	}
	
	public void ausgabe(){
		System.out.println(this.Day);
	}
}

Vielen Dank für eure Hilfe
Gruß
 

eRaaaa

Top Contributor
Also irgendwie ist mir schleierhaft was du da genau vor hast. Wozu einen eigenen Renderer, was hat der mit deiner Beschreibung zu tun? Die Klasse sieht auch ein wenig merkwürdig aus.
Was genau hast du vor?
Ein enum würde sich evtl. auch anbieten
Java:
	public static void main(String[] args) throws Exception {
		JFrame frame = new JFrame();
		JPanel panel = new JPanel();
		JComboBox box = new JComboBox(Wochentag.values());
		box.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				if(e.getStateChange()== ItemEvent.SELECTED){
					System.out.println(((Wochentag)e.getItem()).ordinal());
				}
			}
		});
		panel.add(box);
		frame.add(panel);
		frame.pack();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
	}
Java:
enum Wochentag{
	MONTAG,DIENSTAG,MITTWOCH,DONNERSTAG,FREITAG,SAMSTAG,SONNTAG;

	@Override
	public String toString() {
		String name = super.toString();
		return name.charAt(0)+name.substring(1).toLowerCase();
	}
}

jeder Tag hat hier eine eindeutige ID (0-6) schon automatisch und kann über ordinal() abgerufen werden. Wenn dir die IDs nicht passen, könnte man auch eigene angeben(einfach einen privaten Konstruktor bauen der ein int annimt).
Anders sortieren wäre auch kein Problem !!
 

FfH

Mitglied
Ich habe nichts spezielles vor. Ich bin nur dabei Java zu erlernen und bin am experimentieren. :)

Es geht jetzt nicht nur explizit um die Wochentage. Das war nur ein erster Versuch.
Wenn ich das hinbekomme, ist es auch kein Problem mit einer Klasse, die mir Werte aus meiner Datenbank ausliest und diese in ein Objekt speichert.
Nach deiner Idee, ein Objekt in die ComboBox zu schreiben, habe ich gegoogelt und diese Seite hier im Forum gefunden, auf der gesagt wird, man sollte einen Renderer benutzen. Ausgehend davon habe ich weiter gegoogelt und so meine Klasse erstellt.

Hast du vielleicht ein Beispiel wie ich ein Object in meine ComboBox schieben kann?

Danke schonmal :)
 

eRaaaa

Top Contributor
Java:
class Person{
	private String name;
	private int id;
	
	public Person(String name, int id) {
		this.name = name;
		this.id = id;
	}

	public String getName() {
		return name;
	}
	
	public int getId() {
		return id;
	}
	
	@Override
	public String toString() {
		return name;
	}
}

Java:
	public static void main(String[] args) throws Exception {
	     JFrame frame = new JFrame();
	        JPanel panel = new JPanel();
	        Person[] personen = new Person[2];
	        personen[0] = new Person("eRaaaa", 1337);
	        personen[1] = new Person("FfH", 0);
	        JComboBox box = new JComboBox(personen);
	        box.addItemListener(new ItemListener() {
	            public void itemStateChanged(ItemEvent e) {
	                if(e.getStateChange()== ItemEvent.SELECTED){
	                	Person p = (Person) e.getItem();
	                    System.out.println(p.getId()+" "+p.getName());
	                }
	            }
	        });
	        panel.add(box);
	        frame.add(panel);
	        frame.pack();
	        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	        frame.setLocationRelativeTo(null);
	        frame.setVisible(true);
	}

???:L
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Bei JComboBox einem Eintrag Wert zuweisen AWT, Swing, JavaFX & SWT 7
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
S hashCode int wert AWT, Swing, JavaFX & SWT 6
B Slider-Wert an anderen Slider übergeben AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
S Caps-Lock Überprüfung gibt falschen Wert zurück AWT, Swing, JavaFX & SWT 1
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
K Swing DefaultListModel braucht zu lange, um Wert zu setzen AWT, Swing, JavaFX & SWT 7
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
M JavaFX Wert aus Tabellenzelle auslesen AWT, Swing, JavaFX & SWT 4
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
A Unterklasse schreibt Wert in JFrame AWT, Swing, JavaFX & SWT 4
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
M Swing Alter Wert von einer Variable wird verwendet AWT, Swing, JavaFX & SWT 8
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
M JSlider-Wert ändern, ohne ein ChangeEvent auszulösen AWT, Swing, JavaFX & SWT 4
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
A Ermittelter Wert auf Formular übertragen. AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
N Button Wert zuweisen AWT, Swing, JavaFX & SWT 3
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
L Swing Falscher Wert nach eigener Sortierung (JTable) AWT, Swing, JavaFX & SWT 2
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
C Swing JTable: edit Cell -> versteckten Wert ändern AWT, Swing, JavaFX & SWT 12
B JSlider - Wert am Mouszeiger anzeigen lassen AWT, Swing, JavaFX & SWT 6
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
S Frame - Panel - Dialog rückgabe wert AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
L ArrayList Wert löschen klappt nicht AWT, Swing, JavaFX & SWT 11
C jtable hintegrundfarbe integer wert AWT, Swing, JavaFX & SWT 14
S Swing noch nicht übergebenen Wert aus JComboBox auslesen AWT, Swing, JavaFX & SWT 4
S JTable Wert so bekommen wie er angezeigt wird..? AWT, Swing, JavaFX & SWT 2
I Swing JComboBox Wert setzen AWT, Swing, JavaFX & SWT 4
S Swing In JComboBox Wert und ID integrieren AWT, Swing, JavaFX & SWT 16
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
G JTable - bei falscher Eingabe wird alter Wert genommen. AWT, Swing, JavaFX & SWT 2
A Wert einer JComboBox auslesen AWT, Swing, JavaFX & SWT 1
B JTable Wert in Vector einlesen AWT, Swing, JavaFX & SWT 4
G JComboBox - Anzeige mit Wert verknüpfen AWT, Swing, JavaFX & SWT 3
V Start Button und Wert Eingabe in ein Fenster AWT, Swing, JavaFX & SWT 2
L JTree Frage -> nur den Wert des Knotens ausgeben? AWT, Swing, JavaFX & SWT 2
L Jcombobox + value Wert AWT, Swing, JavaFX & SWT 7
M Wert von einem Fenster zum anderen übergeben AWT, Swing, JavaFX & SWT 3
J Problem mit Alpha-Wert beim Button AWT, Swing, JavaFX & SWT 3
S JTextField. Bei Abbruch vorherigen Wert wiederherstellen AWT, Swing, JavaFX & SWT 2
D Wert von Kasse2 an Klasse1 übergeben AWT, Swing, JavaFX & SWT 3
D Scrollbalken Wert setzen AWT, Swing, JavaFX & SWT 6
S Eingegeben Wert wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S Methoden return wert? AWT, Swing, JavaFX & SWT 7
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
G JRadioButton beim deselektieren Wert ändern. AWT, Swing, JavaFX & SWT 2
M JTextField auslesen und Wert vergleichen? AWT, Swing, JavaFX & SWT 2
W JTextfield aktualisieren / Wert aus Datenbank neu abfragen AWT, Swing, JavaFX & SWT 2
T JTable überschreibt alten Wert AWT, Swing, JavaFX & SWT 12
T Jtable falscher Wert wird übergeben AWT, Swing, JavaFX & SWT 13
O JComboBox nach erkennt Wert nach setSelectedItem() nicht AWT, Swing, JavaFX & SWT 3
D JComboBox.getSelectedIndex() liefer immer 0 als Wert zurück? AWT, Swing, JavaFX & SWT 11
D Doppelklick in JList --> Wert auslesen AWT, Swing, JavaFX & SWT 8
G jspinner schrittweite in Abhängigkeit vom aktuellen Wert AWT, Swing, JavaFX & SWT 3
B Wert bei JFormattedTextField automatisch aktualisieren AWT, Swing, JavaFX & SWT 2
G Wert aus Dialog zurückgeben AWT, Swing, JavaFX & SWT 13
R Wert von ScrollBar ausgeben AWT, Swing, JavaFX & SWT 7
R JTable - Boolean-Wert aus Zelle auslesen. AWT, Swing, JavaFX & SWT 9
G Setzen wert in JTextField AWT, Swing, JavaFX & SWT 11
H JList: Mit ausgewähltem Wert weiterarbeiten AWT, Swing, JavaFX & SWT 16
E x wert von einem vorhandenen punkt abziehen? AWT, Swing, JavaFX & SWT 3
B Wert einer JCombobox in einer JTable setzen AWT, Swing, JavaFX & SWT 2
H Den wert aus einem Text field holen AWT, Swing, JavaFX & SWT 5
R JTable valueChanged() {wert an GUI} AWT, Swing, JavaFX & SWT 5
R wert aus editable JComboBox holen AWT, Swing, JavaFX & SWT 2
G Eintrag soll nur einmal in Listview zu sehen sein AWT, Swing, JavaFX & SWT 3
H Swing Auf Klick auf Menü-Eintrag reagieren AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben