Umlaute und JComboBox



  • Hallo Zusammen,

    vielleicht weiss das Jemand und kann mir helfen. Ich habe eine JTable. In dieser ist sind der Inhalte eines Elementes einer Combobox in einer Zeile abgelegt. Unter anderem. Nun selektiere ich diese Zeile und möchte, dass die ComboBox automatisch diesen Inhalt selektiert. Das geht ja folgendermassen:

    parm1 = (Object) tableBuchungen.getValueAt(selectedRow, 4); 
         cbZahlungsperiode.setSelectedItem(parm1);
    

    Jetzt ist es aber so, dass meine Elemente in der Tabelle Umlaute enthalten. Dabei wird zum Beispiel der String "jährlich" oder "vierteljährlich" nicht erkannt, wohl aber "monatlich". Wie kann ich nun die Region einstellen, so dass Umlaute erkannt werden können, wenn sie als String in der JTable stehen?
    Was kann ich tun?

    Freue mich schon jetzt auf Eure Antworten.

    Grüsse

    Oliver 🙄



  • Hi,

    ich nochmal: Oder liegt das vielleicht an der englischsprachigen IDE?

    Gruss

    Oliver



  • Verstehe die Frage nicht ganz. Willst du sagen, dass in der JComboBox keine Umlaute dargestellt werden? Wie werden sie denn dargestellt? Rechtecke, wirre Zeichen?



  • Hallo Cengiz,

    nein, nein. Die Umlaute werden richtig dargestellt, aber ein String, der mit "setSelectedItem" als ein Element in der Combobox vorhanden ist, wird nicht selektiert, obwohl wie in dem String dargestellt. Ich habe das ausprobiert, indem ich in meine Combobox und JTable nur Strings ohne Umlaute aufgenommen habe. Mit Click in der JTable und Aufnahme aller Elemente der JTable-Zeile wurde dann auch der richtige Inhalt in der Combobox selektiert. Enthält der String aber einen Umlaut, so wird kein Element aus der ComboBox selektiert.

    Ich hoffe, ich habe das Problem noch einmal plastischer dargestellt.

    Viele Grüsse

    Oliber 🙂



  • Aehm nö sorry 🙂
    Annahme:
    ComboBox enthält
    1 jährlich
    2 monatlich
    3 vierteljährlich
    4 niemals

    Dann wird beim setSelectedIndex(1) nicht "jährlich" angezeigt? Bei setSelectedIndex(2) aber dann "monatlich" korrekt angezeigt? Was wird statt dessen angezeigt wenn du setSelectedIndex(1) machst?

    Wenn ich dieses Programm laufen lasse dann wird genau der Eintrag markiert, den ich angebe ...

    import javax.swing.*;
    
    public class ComboSelection extends JFrame {
    	private JComboBox cb = null;
    
    	public ComboSelection() {
    		super("Combobox Selection Demo");
    		String auswahl[] = {"jährlich", "monatlich", "vierteljährlich", "niemals"};
    		cb = new JComboBox(auswahl);
    		this.getContentPane().add(cb);
    
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		pack();
    	}
    
    	public void setSelectedIndex(int i) {
    		cb.setSelectedIndex(i);
    	}
    
    	public static void main (String args[]) {
    		ComboSelection cs = new ComboSelection();
    		cs.setVisible(true);
    		cs.setSelectedIndex(2);
    	}
    }
    


  • Hi,

    ich hatte nicht "SetSelectedIndex", sondern "setSelectedItem" benutzt (siehe Programm-Snippet). Java scheint mit den Umaluten hier nicht klar zu kommen.

    Gruss

    Oliver


Anmelden zum Antworten