JComboBox

Status
Nicht offen für weitere Antworten.

e9926044

Bekanntes Mitglied
Hi,

wenn ich meine JComboBox betätige, dann erscheint das PopupMenü, So weit so gut,
nur, dann wird auch die untere Methode aufgerufen,
in dieser unteren Methode lösche ich zuerst alle Items in der JcomboBox und füge dann die Items hinzu, die ich brauche,

Das Problem ist, dass, wenn ich auf den Pfeil der JComboBox drücke, das PopupMenü sehr klein ist, erst wenn ich ein zweites Mal auf den Pfeil der JComboBox drücke, dann passt sich die PopupMenü- Größe der Anzahl der Items an,

Ich suche nach einer Möglichkeit, dass sich das PopupMenü schon beim ersten Mal draufdrücken auf den Pfeil, anpasse


Code:
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
        propChooser.removeAllItems();
        propChooser.insertItemAt("Allgemein", 0);    
... //Hier werden noch Items in die JcomboBox gegeben

   // hier möchte ich eine Zeile haben, die dem Popup- Menü die richtige Größe gibt
}
 

quippy

Bekanntes Mitglied
Ich vermute da ein "repaint"-Problem. Das Löschen und hinzufügen von Elementen erzeugt jedesmal ein Event, das ggf. von der Combobox abgefangen wird und eine Event-Kette auslöst, die ungünstig auf das repaint ist.

Vielleicht hilft ein letzliches "propChooser.repaint()" am Ende.

Allerdings erscheint es mir unglücklich, die Combobox beim Anklicken zu befüllen. Ich würde das vorher tun, nämlich dann, wenn die Daten für die Box zur Verfügung stehen bzw. die Auswahl der Daten, die angezeigt werden müssen, feststeht.

Vielleicht solltest Du dazu, falls das besser zu steuern ist, den FocusGained-Listener verwenden, der dann aufgerufen wird, wenn die Box den Focus bekommt (was beim ancklichen des Pfeils eher passiert)

Alternativ könntest Du den FocusLost bei dem Feld verwenden, das ausschlaggebend für die Befüllung der Box ist.
 

e9926044

Bekanntes Mitglied
Naja, die Daten stehen erst beim Anklicken des Pfeiles der JComboBox zur Verfügung,
JComboBox#repaint(); hilft leider nichts, das hab ich schon ausprobiert,
 

quippy

Bekanntes Mitglied
Ich glaube nicht, daß die Daten beim Anklicken der Combobox zur Verfügung stehen. Da ist mit Sicherheit noch ein Event vorher - z.B. ein Eintrag in einem Textfeld oder das Anklicken einer Checkbox etc.

Auf jeden Fall würde ich das mit dem FocusGaind ausprobieren. Da malt die Combobox noch nicht den Inhalt neu.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JComboBox XYZ uses unchecked or unsafe operations Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
S Unchecked cast from Component to JComboBox<String> Allgemeine Java-Themen 3
Luk10 Frage zu JComboBox und GridLayout Allgemeine Java-Themen 3
C Swing JComboBox - Problem mit der Darstellung des Inhaltes Allgemeine Java-Themen 9
I jComboBox itemlänge Allgemeine Java-Themen 7
MQue JComboBox in JTable Allgemeine Java-Themen 4
G JComboBox getSelectedItem Zeit Allgemeine Java-Themen 5
D Locale mit JCombobox umschalten Allgemeine Java-Themen 19
V JComboBox und Wertevergleich. Allgemeine Java-Themen 2
D JComboBox - SelectedIndex Allgemeine Java-Themen 6
P JComboBox Array unterscheiden Allgemeine Java-Themen 3
E JComboBox und JTextFeld mischen Allgemeine Java-Themen 2
T JComboBox simulieren Allgemeine Java-Themen 9
C JCombobox ImageIcon & Text Allgemeine Java-Themen 2
G JComboBox mit aufklappbarem JPanel? Allgemeine Java-Themen 13
G JComboBox mit Werten aus einer Access Datenbank füllen Allgemeine Java-Themen 18
B JComboBox-Eintrag ohne Enter aktualisieren Allgemeine Java-Themen 2
C Serialisierung von JComboBox Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben