S
scooterJava
Gast
Mein Programm hat im linken Drittel einen JXTaskPaneContainer und rechts ein JPanel P, das in einem kleinen Nordteil P1 und in einem großen Centerteil P2 zwei JPanels aufnimmt.
Unter Java 5 habe ich keine Probleme mit der Darstellung.
Unter Java 6 kommt es beim Aufbau des Desktops zu folgendem Verhalten: Beim Start wird nicht etwa P1 oder P2 nicht angezeigt, beide oder keiner davon, sondern es wird die ganze obere Hälfte von P nicht aufgebaut - der darunter liegende Desktop scheint durch. Mich verwundert also, dass nicht eine bestimmte Teilkomponente P1/2 betroffen ist. Sobald ich aber einen Login-Dialog bestätigt habe und P2 gefüllt wird, erscheinen P und P1 korrekt. Betroffen ist übrigens nicht nur das JPanel ? mit seinen beiden Komponenten, sondern auch die dazu unabhängig aufgebaute JSplitPane zwischen den beiden Desktopteilen.
Das lässt vermuten, dass Java 6 interne Änderungen erfahren hat, die nicht in der Doku beschrieben sind. Es hat den Anschein, als käme der Grafikaufbauer nicht schnell genug mit dem Zeichnen zurecht, da schon andere Routinen tätig werden.
Ich habe schon Verschiedenes probiert: Umstellen des Codes, repaint() usw. Nichts brachte mich greifbar weiter. Die Komponenten werden in der gleichen Klasse in einer Methode erzeugt und den Paneln hinzugefügt, auf ganz konventionelle Weise.
Meine main-Methode bindet den Konstruktor-Aufruf in ein
ein. In der Sun-Doku heißt es zwar
Unter Java 5 habe ich keine Probleme mit der Darstellung.
Unter Java 6 kommt es beim Aufbau des Desktops zu folgendem Verhalten: Beim Start wird nicht etwa P1 oder P2 nicht angezeigt, beide oder keiner davon, sondern es wird die ganze obere Hälfte von P nicht aufgebaut - der darunter liegende Desktop scheint durch. Mich verwundert also, dass nicht eine bestimmte Teilkomponente P1/2 betroffen ist. Sobald ich aber einen Login-Dialog bestätigt habe und P2 gefüllt wird, erscheinen P und P1 korrekt. Betroffen ist übrigens nicht nur das JPanel ? mit seinen beiden Komponenten, sondern auch die dazu unabhängig aufgebaute JSplitPane zwischen den beiden Desktopteilen.
Das lässt vermuten, dass Java 6 interne Änderungen erfahren hat, die nicht in der Doku beschrieben sind. Es hat den Anschein, als käme der Grafikaufbauer nicht schnell genug mit dem Zeichnen zurecht, da schon andere Routinen tätig werden.
Ich habe schon Verschiedenes probiert: Umstellen des Codes, repaint() usw. Nichts brachte mich greifbar weiter. Die Komponenten werden in der gleichen Klasse in einer Methode erzeugt und den Paneln hinzugefügt, auf ganz konventionelle Weise.
Meine main-Methode bindet den Konstruktor-Aufruf in ein
Code:
SwingUtilities.invokeLater( new Runnable() {}
aber das hat in Java 5 nicht gestört, deshalb glaube ich nicht, dass hier die Ursache liegt.Causes doRun.run() to be executed asynchronously on the AWT event dispatching thread. This will happen after all pending AWT events have been processed. This method should be used when an application thread needs to update the GUI.