000
21.07.2007, 04:09 Uhr
Lensflare
|
Hallo.
ich hab schon mehrere GUIs mit java erstellt und habe immer das selbe Problem:
Wenn ich das programm ausführe kommt es oft vor, dass einige komponenten verschoben sind oder verschwunden. Beim nächsten starten sind sie wieder da, dann wieder weg. Es sind nicht mal die selben Komponenten, die verschwinden.
Hier ist ein Beispielcode, wie ich meine GUI immer aufbaue.
Den Container "dummy" muss ich am ende einfügen und entfernen, weil sonst die letzte hinzugefügte komponente falsch dargestellt wird (keine Auhnung warum).
Wenn man das Programm nun mehrmals ausführt, sieht man, dass immer wieder andere Buttons falsch dargestellt werden.
C++: |
import javax.swing.*;
import java.awt.*; import java.awt.event.*;
public class GUI_Test extends JFrame implements ActionListener { private JButton button[] = new JButton[20]; Container dummy = new Container(); public GUI_Test() { this.addWindowListener(new WindowQuitter()); this.setVisible(true); this.setTitle("Test"); this.setBounds(10, 10, 200, 200); for(int i=0; i<20; i++) { button[i] = new JButton("Button "+i); button[i].setBounds(10, i*30, 150, 25); this.getContentPane().add(button[i]); } this.getContentPane().add(dummy); this.getContentPane().remove(dummy); this.getContentPane().setPreferredSize(new Dimension(300,650)); this.pack(); //wenn man die fenstergröße setzt, statt die preferredSize des containers und dann das fenster zu packen, passiert mit den buttons trotzdem das selbe. //this.setSize(new Dimension(300,650)); } public void actionPerformed(ActionEvent evt) { //... } public static void main(String args[]) { new GUI_Test(); } class WindowQuitter extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }
|
Hab das von einer anderen Person kompilieren lassen und sie hat mir den Effekt bestätigt.
Bei google habe ich nichts zu diesem Problem gefunden.
Wenn mir jemand weiterhelfen könnte, wäre ich sehr dankbar. -- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost) |