Devo sostituire il contenuto della cella della griglia dopo aver fatto clic sul pulsante. Ad esempio: c'è Label e ho bisogno di sostituirlo con Text. È possibile con GridLayout? Devo usare SWT.Come sostituire il contenuto della cella della griglia in SWT GridLayout?
6
A
risposta
8
È possibile disporre semplicemente dello Label
e inserire un nuovo Text
al suo posto. GridLayout
utilizza l'ordine z dei bambini per determinare la posizione nella griglia, quindi sarà necessario utilizzare moveAbove()
e moveBelow()
sullo Text
per poterlo ottenere nella posizione corretta. Quindi chiama il layout()
sul genitore. Per esempio:
Text text = new Text(label.getParent(), SWT.BORDER);
text.moveAbove(label);
label.dispose();
text.getParent().layout();
Ecco un widget semplice che illustra esattamente quello che voglio dire:
public class ReplaceWidgetComposite
extends Composite
{
private Label label;
private Text text;
private Button button;
public ReplaceWidgetComposite(Composite parent, int style)
{
super(parent, style);
setLayout(new GridLayout(1, false));
label = new Label(this, SWT.NONE);
label.setText("This is a label!");
button = new Button(this, SWT.PUSH);
button.setText("Press me to change");
button.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
text = new Text(ReplaceWidgetComposite.this, SWT.BORDER);
text.setText("Now it's a text!");
text.moveAbove(label);
label.dispose();
button.dispose();
ReplaceWidgetComposite.this.layout(true);
}
});
}
}
Problemi correlati
- 1. Come allungare il rettangolo sulla cella della griglia in XAML
- 2. moveRowAtIndexPath non aggiorna il contenuto della cella
- 3. rimozione griglia JTable (bordo della cella) completamente
- 4. posso combinare SWT GridLayout e FillLayout
- 5. Come modificare il colore della cella della griglia in base alle condizioni utilizzando C#
- 6. Come formattare un valore numerico nella cella della griglia della griglia AngularJS a due decimali?
- 7. Leggere il contenuto della cella in un notebook ipython
- 8. Come mostriamo la griglia in GridLayout?
- 9. Trigger DataGrid WPF sul contenuto della cella
- 10. Come allineare l'immagine al centro della cella della tabella (Tabella SWT)
- 11. Rendere selezionabile il contenuto della griglia ExtJS 4
- 12. Posso cancellare il contenuto della cella senza cambiare lo stile?
- 13. come selezionare una cella da tavolo SWT
- 14. Ignora selezione e passa il mouse Colore di sfondo della cella in un componente Tabella SWT
- 15. La griglia utente angolare non è in grado di copiare il testo della cella
- 16. Animazione della griglia o della griglia in XAML?
- 17. Disattivazione della modifica di cella specifica nella griglia Slick
- 18. Excel: sostituire parte del valore di stringa della cella
- 19. Come aumentare il timeout della sessione della griglia di selenio?
- 20. Determinazione della messa a fuoco in SWT
- 21. Come impostare il colore della cella in base al valore della cella su ooo-calc?
- 22. Come cambiare il colore della cella jqGrid?
- 23. Come impostare il valore nella cella nella griglia in extjs
- 24. php_excel07- Come aumentare l'altezza della cella in base ai dati della cella (xls)
- 25. Modifica altezza cella per il contenuto del testoVisualizza all'interno della cella
- 26. leggere il contenuto della cache della CPU
- 27. extjs4 come impostare automaticamente la larghezza della colonna della griglia alla larghezza massima del contenuto?
- 28. Rilevamento della griglia in MATLAB
- 29. SWT Java: come impedire il ridimensionamento della finestra?
- 30. Come cambio il colore di sfondo di un'interfaccia utente Kendo per la cella della griglia MVC
Non funziona correttamente. Questo codice causa l'inserimento della cella di testo dopo l'etichetta, ma volevo sostituire l'etichetta. dispose() in qualche modo non rimuove l'etichetta dalla griglia perché è ancora visibile. – alhcr
Smaltire un widget dovrebbe rimuoverlo dal suo genitore. Prova a chiamare 'parent.layout (true)'. –
Sembra che non funzioni così. Ho shell.layout (true); e so che funziona perché il testo è inserito e io lo vedo, ma l'etichetta è ancora visibile. L'hai usato da qualche parte e ha funzionato correttamente? – alhcr