sirve setopaque que para java layout swt

java - setopaque - Los componentes SWT se retransmiten después de que la visibilidad se establezca en falso



textarea java jframe (1)

Una solución muy simple podría usar la propiedad GridData::exclude . Por ejemplo,

Código

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; public class HideLabel { public static void main(String[] args) { Display display = new Display(); final Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); shell.setText("Hide Label"); Label label = new Label(shell, SWT.NONE); label.setText("Label 1"); final Label bHidden = new Label(shell, SWT.NONE); bHidden.setText("Label 2"); GridData data = new GridData(); data.exclude = false; data.horizontalAlignment = SWT.FILL; bHidden.setLayoutData(data); label = new Label(shell, SWT.NONE); label.setText("Label 3"); Button button = new Button(shell, SWT.CHECK); button.setText("hide"); button.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { Button b = (Button) e.widget; GridData data = (GridData) bHidden.getLayoutData(); data.exclude = b.getSelection(); bHidden.setVisible(!data.exclude); shell.layout(false); } }); shell.setSize(200, 200); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }

Digamos que si tengo un compuesto GridLayout con columna = 1. (Algo así como un diseño de flujo vertical) He agregado Label 1, Label 2, Label 3 a este compuesto, y aparecerán en consecuencia.

---------- Label 1 | Label 2 | Label 3 | ----------

Entonces, ¿es posible que si configuro la visibilidad de la Etiqueta 2 como false , la Etiqueta 3 suba para reemplazar a la Etiqueta 2? Y si la visibilidad de la Etiqueta 2 vuelve a ser true , ¿la Etiqueta 3 se moverá hacia abajo?