deepmessage Geschrieben 19. Juni 2009 Geschrieben 19. Juni 2009 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 Zitieren
-patrick- Geschrieben 21. Juni 2009 Geschrieben 21. Juni 2009 (bearbeitet) 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 21. Juni 2009 von -patrick- Zitieren
deepmessage Geschrieben 21. Juni 2009 Autor Geschrieben 21. Juni 2009 Hi Patrick, danke für Deine Idee. Leider nicht erfolgreich. Egal - ich hab die Dinger jetzt etwas weiter auseinander platziert, jetzt kommt es "seltener" zur fehlerhaften Darstellung. Gruß Alex Zitieren
zui2000 Geschrieben 23. Juni 2009 Geschrieben 23. Juni 2009 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 Zitieren
screamboy14 Geschrieben 27. Juni 2009 Geschrieben 27. Juni 2009 öhm zui2000 könntest du die fachbegriffe da mal erklären die du in deiner antwort gesagt hast ^^ danke xDD Zitieren
zui2000 Geschrieben 29. Juni 2009 Geschrieben 29. Juni 2009 (bearbeitet) ö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! kurz: AWT hat eine höhere "Priorität" als Swing und dadruch überlappen sich manchmal Komponenten. Bearbeitet 29. Juni 2009 von zui2000 Zitieren
Empfohlene Beiträge
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.