Nel mio caso ho due figli di un SashForm
, ma la domanda si applica a tutti i Composite
s.Modifica dell'ordine dei figli di un materiale composito SWT
class MainWindow {
Sashform sashform;
Tree child1 = null;
Table child2 = null;
MainWindow(Shell shell) {
sashform = new SashForm(shell, SWT.NONE);
}
// Not called from constructor because it needs data not available at that time
void CreateFirstChild() {
...
Tree child1 = new Tree(sashform, SWT.NONE);
}
void CreateSecondChild() {
...
Table child2 = new Table(sashform, SWT.NONE);
}
}
Non so in anticipo in quale ordine verranno chiamati questi metodi. Come posso assicurarmi che child1
sia posizionato a sinistra e child2
a destra? In alternativa, c'è un modo per cambiare il loro ordine come figli di sashform
dopo vengono creati?
Attualmente la mia idea migliore è quello di mettere in segnaposti in questo modo:
class MainWindow {
Sashform sashform;
private Composite placeholder1;
private Composite placeholder2;
Tree child1 = null;
Table child2 = null;
MainWindow(Shell shell) {
sashform = new SashForm(shell, SWT.NONE);
placeholder1 = new Composite(sashform, SWT.NONE);
placeholder2 = new Composite(sashform, SWT.NONE);
}
void CreateFirstChild() {
...
Tree child1 = new Tree(placeholder1, SWT.NONE);
}
void CreateSecondChild() {
...
Table child2 = new Table(placeholder2, SWT.NONE);
}
}
Lo fa. Ho appena perso l'esistenza di 'moveAbove' perché stavo cercando tra i metodi di' Composite'. –
Grazie per queste informazioni :) Una cosa buona da notare è che puoi usare null per spostarlo in alto. –