Zum Inhalt springen

Einträge von JComboBox werden von JTextField verdeckt


deepmessage

Empfohlene Beiträge

Hallo zusammen,

ich habe in meinem JFrame das Problem, dass die Liste der verfügbaren Einträge meiner JCombobox von dem darunterliegenden JTextField verdeckt werden. Weiß jemand, wie ich das beheben kann?

Das Problem tritt sproadisch auf, auf mein JFrame setzt ich das BorderLayout, die einzelnen Komponenten in einem JPanel mit GridLayout.

Gruß

Alex

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte früher mal den Fehler gemacht das GridBagConstraints Objekt vor dem initialisieren und setzen mit setConstraints() nie neu anzulegen. Ich habe praktisch immer das gleiche Objekt verwendet und nur neu initialisiert.

Das führte dazu, dass die Elemente nie so wirklich genau so positioniert waren wie ich wollte.

Vielleicht machst du es auch so und es kommt deswegen zu dem Problem das SWING nicht erkennt, dass es an der Stelle das JTextField eigentlich überdecken muss.

Beispiel wie es sein sollte:

[B]gbc = new GridBagConstraints();[/B]

gbc.insets = new Insets(2,2,2,2);

gbc.ipadx = 0;

gbc.gridx = 0;  	  

gbc.gridheight = 1;

textFieldRateValueA.setDocument(new RateFieldDocument());

gbl.setConstraints(textFieldRateValueA, gbc);

panel.add(textFieldRateValueA);  


[B]gbc = new GridBagConstraints();[/B]

gbc.insets = new Insets(2,2,2,2);

gbc.gridx = 1;  	

gbc.gridy = 0;  

gbc.gridheight = 1;

rateLabelx.setText(":");

gbl.setConstraints(rateLabelx, gbc);

panel.add(rateLabelx);


[B]gbc = new GridBagConstraints();[/B]

gbc.insets = new Insets(2,2,2,2);

gbc.gridx = 2;  	

gbc.gridy = 0;  

gbc.gridheight = 1;

textFieldRateValueB.setDocument(new RateFieldDocument());

gbl.setConstraints(textFieldRateValueB, gbc);

panel.add(textFieldRateValueB);

ist nur ne Idee aber besser als nix ^^

Bearbeitet von -patrick-
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

wahrscheinlich auch ein Heavyweight/Lightweight Problem.

Check mal ob alle Elemente von Swing kommen, oder ob du ein AWT Element dazwischen hast (z.B. BorderLayout), denn Swing ist Lightweight und AWT Heavy.

Konsequenz: Heavy > Light

A Farewell to Heavyweight/Lightweight Conflicts | Javalobby

Es gibt auch einen kleinen Hack, wo man einfach der schwachen Komponente per Methodenaufruf auf heavy setzt.

Zur Not suche ich dir den mal raus, hatte das Problem mit JMenu und Canvas.

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

öhm zui2000 könntest du die fachbegriffe da mal erklären die du in deiner antwort gesagt hast ^^ danke xDD

Den Link oben anklicken und lesen! :D

kurz: AWT hat eine höhere "Priorität" als Swing und dadruch überlappen sich manchmal Komponenten.

Bearbeitet von zui2000
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...