SWT Composites überschreiben

Status
Nicht offen für weitere Antworten.

dzim

Top Contributor
Hallo,

ich bastel gerade an einer Oberfläche, bei der sich nach anwählen eines Elementes in einer Tabelle, auf dem Rest der Fläche ein spezielles Composite gezeichnet werden soll.
Der Aufbau ist dabei ungefähr wie folgt:

Parent Composite
SashForm
Group1 | Group2
Table | leeres Composite

Ich initialisier also die Group2 am Anfang mit einem leeren Stub. Nun habe ich, pro Item in der Tabelle, ein unterschiedliches Composite, welches angezeigt werden soll. Deswegen, habe ich den vorher angelegten Stub disposed, null gesetzt, das neue Composite angelegt (auf die Variable des Stubs), die Anzeige-Regeln (seine Größe u.s.w.) gesetzt und hinterher ein compositeTemplate.pack() gestartet...
Das Composite wird angezeigt, aber nicht richtig auf das Layout angepasst, es klemmt sich dann viel zu klein oben links in die Ecke - und ist somit nicht nutzbar.
Wenn ich nun das Fenster (es handelt sich um einen Eclipse RCP Editor) in seiner Größe verändere, oder die Gesamtanwendung resize, wird das Composite richtig angezeigt, aber eben erst dann.

Ich denke, das Größe verändern forciert jeweils ein neu-zeichnen der Oberfläche, allerdings habe ich auch schon verschiedene Sachen ausprobiert:
compositeTemplate.layout(true, true);
compositeTemplate.redraw();
compositeTemplate.update();
compositeTemplate.changed(compositeTemplate.getChildren());
compositeTemplate.pack();

Egal was ich versuche, es ändert nichts. Ich habe auch das direkte Parent-Object versucht, die Group2, allerdings mit dem selben (miß-)erfolg.

Gibt es da einen Trick? Oder eine saubere Methode?

Danke schon mal
 

dzim

Top Contributor
Ich denke mal, das das .pack() hier eher ungünstig ist, das es alles auf die Preferred Size zeichnet - das scheint dann das winzige Composite zu sein... lass ich das Pack aber weg, wird es nicht einmal angezeigt. Sondern erst beim resizen neu gezeichnet...
 

dzim

Top Contributor
wenn ich mir die Größe des alten Frames hole...

final Point size = compositeTemplate.getSize();

und nach Neuanlegen des Composites setze...

compositeTemplate.setSize(size);
compositeTemplate.update();

wird es korrekt in der Größe angezeigt, überlappt aber die darunter liegende Group2.
 

dzim

Top Contributor
Huch, wenn ich nun noch ein...

parentGroup2.layout(true, true);

ausführe, wird es korrekt angezeigt.
Juhuu!

Nichtsdestotrotz stelle ich mir doch weiterhin die Frage, ist das denn sauber so zu programmieren? Wenn nein, wie sollte man das dann aber anders gestalten???
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S GridLayout SWT: Anordnung Composites nebeneinander AWT, Swing, JavaFX & SWT 2
A SWT Scrollable Composite innerhalb eines Composites AWT, Swing, JavaFX & SWT 3
HaukeG SWT Grundsätzliches über Composites, Shell und Displays AWT, Swing, JavaFX & SWT 2
T Composites ein- und ausblenden AWT, Swing, JavaFX & SWT 16
L JavaFX ListView oder TableView Style überschreiben? AWT, Swing, JavaFX & SWT 6
P Swing JTable Werte auslesen bzw überschreiben AWT, Swing, JavaFX & SWT 5
G Border der Komponente bei Table CellRenderer überschreiben AWT, Swing, JavaFX & SWT 0
M Update überschreiben klappt nicht AWT, Swing, JavaFX & SWT 4
D JSlider "laggt" nach überschreiben der paint methode AWT, Swing, JavaFX & SWT 2
J JComboBox - wie getSelectedItem() überschreiben? AWT, Swing, JavaFX & SWT 8
B JFrame mit neuem JPanel überschreiben AWT, Swing, JavaFX & SWT 13
N AWT Timer überschreiben? AWT, Swing, JavaFX & SWT 8
S Swing JFormattedTextField - bei nicht korrekter Eingabe Inhalt überschreiben AWT, Swing, JavaFX & SWT 5
K Swing JButton paintComponent überschreiben AWT, Swing, JavaFX & SWT 5
GianaSisters Swing jTable's valueChanged Methode überschreiben AWT, Swing, JavaFX & SWT 2
T Swing Drag and Drop - JLabels tauschen statt überschreiben AWT, Swing, JavaFX & SWT 11
F JButton überschreiben AWT, Swing, JavaFX & SWT 15
G Swing JTable prepareRenderer überschreiben? AWT, Swing, JavaFX & SWT 4
F Swing JTable Einfach-Selektion überschreiben AWT, Swing, JavaFX & SWT 4
S AWT List: Items überschreiben? AWT, Swing, JavaFX & SWT 6
DStrohma JFrame minimieren überschreiben AWT, Swing, JavaFX & SWT 7
T Methode überschreiben AWT, Swing, JavaFX & SWT 3
G JTable - prepareRenderer() überschreiben klappt nicht AWT, Swing, JavaFX & SWT 2
C paint-Methode überschreiben AWT, Swing, JavaFX & SWT 19
T paintComponent() überschreiben: Platz für Border freihalten? AWT, Swing, JavaFX & SWT 6
G Krasse Frage für Profies . Consolenausgaben überschreiben AWT, Swing, JavaFX & SWT 2
M jTextField - Text stets überschreiben AWT, Swing, JavaFX & SWT 4
U vorherige daten überschreiben AWT, Swing, JavaFX & SWT 7
S paint überschreiben in Subkomponenten AWT, Swing, JavaFX & SWT 5
I JFrame => paint überschreiben AWT, Swing, JavaFX & SWT 5
J JTableModel Funktionen überschreiben AWT, Swing, JavaFX & SWT 4
H JPanel überschreiben aus anderer Klasse AWT, Swing, JavaFX & SWT 2
G methode eines objektes überschreiben AWT, Swing, JavaFX & SWT 4
V Probleme mit überschreiben von JLabel AWT, Swing, JavaFX & SWT 4
M JFrame über x schliessen überschreiben funktioniert nicht! AWT, Swing, JavaFX & SWT 7
U paint(Graphics g) überschreiben? AWT, Swing, JavaFX & SWT 7
Z Welche Funktion von JTextArea muß ich überschreiben? AWT, Swing, JavaFX & SWT 4
N LookAndFeel - Nicht gleich alles überschreiben AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben