JComboBox(editable)

beastofchaos

Bekanntes Mitglied
Hallo mal wieder,
Ich hab eine Frage zu der Größe(Columns) von einer JComboBox(editable). Und zwar setzt ich die Breite des Fenster immer per
Code:
    ((JTextField)comboWidth.getEditor().getEditorComponent()).setColumns(2);

Wenn ich nun mein Design(Lokk and Feel) zur Laufzeit ändern lasse, wird die comboBox wieder zur Standard breite :/ Wenn ich dann wieder Columns auf 2 setzte, verändert sich nichts. Hier der wichtigste Quellcode:

Java:
    private void setMenu2(JPanel target){
        JPanel tempPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 2, 2));
        JToolBar tempToolbar = new JToolBar();
        tempToolbar.setRollover(true);
        
        buttonNew = new JButton();
        ...
        tempToolbar.add(buttonNew);
        
        buttonOpen = new JButton();
        ...
        tempToolbar.add(buttonOpen);
        
        buttonSave = new JButton();
        ...
        tempToolbar.add(buttonSave);
        
        tempToolbar.addSeparator();
        tempPanel.add(tempToolbar);
        
        String[] choosable = {"1", "2", "3", "4", "5", "7", "10", "15", "30", "50", "75", "100"};
        comboWidth = new JComboBox(choosable);
        comboWidth.setEditable(true);
        ((JTextField)comboWidth.getEditor().getEditorComponent()).setColumns(2);
        comboWidth.addActionListener(this); 
        tempPanel.add(comboWidth);
        
        target.add(tempPanel, BorderLayout.SOUTH);
    }
Es ist vll zuviel, aber dann wisst ihr shconmal, dass es in einem "Unterpanel" in einem FlowLayout neben einer Toolbar liegt, was vielleicht dne Fehler verursacht :/

LookAndFeel-Veränderung:
Java:
    private void setLookAndFeel(String lafName) {
	   try {
	      UIManager.setLookAndFeel(lafName);
	      SwingUtilities.updateComponentTreeUI(main);        // Ab hier ist die comboBox wieder breit
	   }
	      catch(Exception ex) {
	   }
	}


Im Anhang noch ein Bild, mit Anfang und nach dem Verändern.

Gruß, Thomas
 

Anhänge

  • comboBoxEditor.jpg
    comboBoxEditor.jpg
    35,8 KB · Aufrufe: 31

Ebenius

Top Contributor
L&Fs lassen sich einfach nicht sauber auf bereits initialisierten Komponenten austauschen. Das ist zwar schade, wird aber in komplexen GUIs an vielen Stellen zum Problem. Deswegen verlangen die meisten Java-Programme die den Nutzer das L&F tauschen lassen auch einen Neustart des Programms.

Um im Einzelfall Deine Änderung wieder aktiv werden zu lassen, kannst Du versuchen, die JComboBox abzuleiten und [c]setUI(ComboBoxUI)[/c] zu überschreiben:
Java:
public void setUI(ComboBoxUI ui) {
  super.setUI(ui);
  ((JTextComponent) getEditor().getEditorComponent()).setColumns(2);
}
(Im Browser getippt; keine Ahnung ob's so wirklich funktioniert.)
Zeile 24 oben kannst Du dann weglassen. Probier's mal aus.

Ebenius
 

beastofchaos

Bekanntes Mitglied
Und wo muss ich die Methode reinschreiben? Kann ich die einfach in meine Hauptklasse(extended JFrame) einbauen und sie wird automatisch aufgerufen?
Danke für die Hilfe
 

Ebenius

Top Contributor
Oh, ich bin ja im Anfängerforum. Da hätte ich die Lösung vllt. gar nicht vorschlagen sollen…

Zeile 22 oben durch diese Zeilen austauschen: [java=22]comboWidth = new JComboBox(choosable) {

private static final long serialVersionUID = 1L;

@Override
public void setUI(ComboBoxUI ui) {
super.setUI(ui);
((JTextComponent) getEditor().getEditorComponent()).setColumns(2);
}
};[/code]

Die Methode wird automatisch aufgerufen…

Ebenius
 

beastofchaos

Bekanntes Mitglied
ok, dankeschön. Es funktioniert - nur ein Fehler: man muss den Editor zu einem JTextfield casten nicht zu einer JTextComponent ;) (sie enthält nämlich die Methode setColumns(int) nicht)
 

beastofchaos

Bekanntes Mitglied
Habe noch ein Problem zu meiner editable JComboBox gefunden. Und zwar wird beim auswählen einer Zahl(als String) nach dem Klick das Popup geschlossen und der Text im Editor selektiert. Ich hab schon versucht, die Selektierung über actionperformed auf 0 immer zu setzen, aber die Selektierung wird offensichtlich nach dem "actionPerformed()" erstellt. Kann ich das iwie verhindern? Meine einzige blöde Idee wäre, einen Timer alle 100 Sekunden die Selektierung auf null zu setzen. Aber ist viel zu aufwendig für das Programm :/

Oder ich lasse mit "setSelectionColor(Color.white)" und "setSelectionTextColor(Color.black)" es ist "unsichtbar" machen, aber wenn man dann eine Zahl eingibt, wird die (nicht sichtbare) Selektierung natürlich gelöscht und damit die Zahl, die davor drin stand...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
StrikeTom Editable JComboBox + enter Wie??? Java Basics - Anfänger-Themen 3
mwildam JComboBox FocusGained feuert nicht wenn editable Java Basics - Anfänger-Themen 4
E Meine JCombobox werte an ohne selectiert zu haben Java Basics - Anfänger-Themen 6
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
J Selektiertes Element von jComboBox zwischenspeichern und wieder einsetzen Java Basics - Anfänger-Themen 0
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
M JComboBox ersten Eintrag leerlassen bzw. Platzhalter Java Basics - Anfänger-Themen 1
Tommy135 Klassen jComboBox macht nicht was sie soll Java Basics - Anfänger-Themen 4
S ArrayListe in einer JComboBox anzeigen Java Basics - Anfänger-Themen 10
H JComboBox wird nicht angezeigt Java Basics - Anfänger-Themen 3
M JComboBox feste double Werte zu ordnen Java Basics - Anfänger-Themen 8
T Einträge in jComboBox aus Liste übernehmen Java Basics - Anfänger-Themen 1
T Auslesen mehrerer jComboBox (-en) Java Basics - Anfänger-Themen 4
H JCombobox Java Basics - Anfänger-Themen 1
D JComboBox duplizieren Java Basics - Anfänger-Themen 2
T jComboBox Java Basics - Anfänger-Themen 9
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
A GUI Absturz nach 3x benutzen einer JComboBox Java Basics - Anfänger-Themen 11
S Erste Schritte JComboBox Java Basics - Anfänger-Themen 1
S JCombobox und JButton verknüpfen Java Basics - Anfänger-Themen 6
S JComboBox automatisch füllen Java Basics - Anfänger-Themen 3
C JComboBox "Hilfstext" anzeigen Java Basics - Anfänger-Themen 11
T Datentypen Jcombobox Array Java Basics - Anfänger-Themen 1
J JComboBox in andere Klasse Java Basics - Anfänger-Themen 2
S Variablen auslesen beim JCombobox Java Basics - Anfänger-Themen 0
K JCombobox Eclipse Java Basics - Anfänger-Themen 7
D JComboBox erzeugen Java Basics - Anfänger-Themen 1
T JComboBox Java Basics - Anfänger-Themen 3
B ArrayLists in JCombobox Java Basics - Anfänger-Themen 10
M JComboBox und ItemListener/ItemEvent Problem Java Basics - Anfänger-Themen 3
M JComboBox Auswahl Java Basics - Anfänger-Themen 10
N Compiler-Fehler JComboBox DefaultListCellRenderer Java Basics - Anfänger-Themen 2
J JComboBox - Auswahl auslesen Java Basics - Anfänger-Themen 2
J jcombobox.getSelectedItem - nullpointerexception Java Basics - Anfänger-Themen 3
C JComboBox setSelectedItem(Object) Problem Java Basics - Anfänger-Themen 5
M JComboBox Obergrenzen/Untergrenze festlegen? Java Basics - Anfänger-Themen 5
K JComboBox hat volle Höhe uber das gesamte JPane, warum? Java Basics - Anfänger-Themen 2
S JComboBox mit ArrayList füllen Java Basics - Anfänger-Themen 7
C Ausgewähltes Element einer JCombobox in JTextField Java Basics - Anfänger-Themen 3
S JComboBox füllen Java Basics - Anfänger-Themen 9
C JComboBox Java Basics - Anfänger-Themen 9
R Auf auswahl in ner JComboBox reagieren Java Basics - Anfänger-Themen 3
T Frage zu JComboBox Java Basics - Anfänger-Themen 6
G JComboBox wird nicht gezeichnet Java Basics - Anfänger-Themen 3
N JComboBox mit Dateinamen befüllen Java Basics - Anfänger-Themen 7
M JComboBox => Item String => Color Java Basics - Anfänger-Themen 2
J JComboBox Listener Java Basics - Anfänger-Themen 6
F Werte aus JComboBox auslesen und Zahlen zuordnen Java Basics - Anfänger-Themen 5
S JComboBox Platzhalter Java Basics - Anfänger-Themen 7
J jComboBox auf default setzen wie? Java Basics - Anfänger-Themen 3
J daten über jComboBox ausgeben wie? Java Basics - Anfänger-Themen 2
S Vector -> String JComboBox Java Basics - Anfänger-Themen 11
E JComboBox Java Basics - Anfänger-Themen 4
J jComboBox.getSelectedIndex() Java Basics - Anfänger-Themen 8
J Funktion Auslösen über JComboBox Java Basics - Anfänger-Themen 2
T JComboBox klappt nur ein- bis zweimal auf Java Basics - Anfänger-Themen 30
S Kein Event bei Click auf JComboBox Java Basics - Anfänger-Themen 4
Developer_X JComboBox getSelectedFilè??? Java Basics - Anfänger-Themen 4
T Daten eines Ordners in JCombobox anzeigen Java Basics - Anfänger-Themen 5
M Einträge in JComboBox farblich hinterlegen? Java Basics - Anfänger-Themen 2
6 Dritte JComboBox in Abhaengigkeit von zwei vorherigen Java Basics - Anfänger-Themen 4
G 2. JComboBox in Abhängigkeit der 1. JCombobox füllen Java Basics - Anfänger-Themen 2
S Problem mit JComboBox Java Basics - Anfänger-Themen 9
H jcombobox mit nur einem Item Java Basics - Anfänger-Themen 7
G Inhalt einer JComboBox wechseln Java Basics - Anfänger-Themen 5
G Problem mit JComboBox Java Basics - Anfänger-Themen 15
G JComboBox Strukturiert anzeigen Java Basics - Anfänger-Themen 6
Schandro Hotkeys bei JComboBox abschalten Java Basics - Anfänger-Themen 3
G JComboBox soll beim Öffnen eine andere JCB öffnen Java Basics - Anfänger-Themen 2
P Hilfe für JComboBox, bmp einbinden/bestimmte punkte auf bmp Java Basics - Anfänger-Themen 3
G JComboBox - BasicComboPopup Java Basics - Anfänger-Themen 4
S Inhalt der JComboBox vergrößtert die JCB ? Java Basics - Anfänger-Themen 2
B Werte aus einer JCombobox in eine Liste Java Basics - Anfänger-Themen 16
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
S Jcombobox und 2maliges anzeigen wegen ItemStateChanged? Java Basics - Anfänger-Themen 3
W setModel feuert ActionEvent bei JComboBox Java Basics - Anfänger-Themen 2
G Frage zu JComboBox Java Basics - Anfänger-Themen 2
W Actionlistener oder Itemlistener bei JCombobox ? Java Basics - Anfänger-Themen 4
G JComboBox Java Basics - Anfänger-Themen 7
G JComboBox macht Probleme Java Basics - Anfänger-Themen 7
G JComboBox alphabetisch sortieren Java Basics - Anfänger-Themen 2
D Locale zur Laufzeit über JComboBox laden? Java Basics - Anfänger-Themen 17
G JComboBox um eine Methode erweitern Java Basics - Anfänger-Themen 2
G jcombobox deaktivieren Java Basics - Anfänger-Themen 4
M Werte aus Jcombobox sollten als int-Werte zurück gegeben . Java Basics - Anfänger-Themen 7
D Items in JComboBox überprüfen Java Basics - Anfänger-Themen 3
G JComboBox zweckentfremden ? Java Basics - Anfänger-Themen 5
N JCombobox Pfeil nach unten bild auf linke seite, geht das? Java Basics - Anfänger-Themen 8
T JComboBox Problem Java Basics - Anfänger-Themen 4
D JComboBox titel Java Basics - Anfänger-Themen 16
M füllen JComboBox funktioniert nicht Java Basics - Anfänger-Themen 11
J JCombobox Item auswählen Java Basics - Anfänger-Themen 13
A Text einer JComboBox während der Laufzeit ändern ? Java Basics - Anfänger-Themen 4
dercheffe 3x jcombobox nacheinander füllen Java Basics - Anfänger-Themen 6
J Inhalt der JComboBox variable Java Basics - Anfänger-Themen 2
O JComboBox Item soll sich als String speichern Java Basics - Anfänger-Themen 5
D JComboBox ohne ItemListener Java Basics - Anfänger-Themen 18
B unvollständige Anzeige von JComboBox Werten Java Basics - Anfänger-Themen 5
G JComboBox gibt SelectedItem immer doppelt aus Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben