Quiero deshabilitar el cambio de tamaño de la ventana. ¿Algunas ideas?SWT Java: ¿Cómo evitar que se cambie el tamaño de la ventana?
Respuesta
Puede especificar los bits de estilo Shell
mediante el constructor de dos arg . Los bits de estilo por defecto son SWT.SHELL_TRIM
:
public static final int SHELL_TRIM = CLOSE | TITLE | MIN | MAX | RESIZE;
que realmente desea excluir el bit RESIZE
. Si va a crear su propio Shell
:
final Shell shell = new Shell(parentShell, SWT.SHELL_TRIM & (~SWT.RESIZE));
Si está extendiendo Dialog
, puede influir en los bits de estilo concha por overridding getShellStyle
:
@Override
protected int getShellStyle()
{
return super.getShellStyle() & (~SWT.RESIZE);
}
Puede controlar los muebles cuando declara el shell. Creo que este ejemplo hace lo que quieres;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class FixedWindow {
public static void main(String[] args) {
Display display = new Display();
//final Shell shell = new Shell(display); //defaults
//final Shell shell = new Shell(display, SWT.CLOSE | SWT.TITLE | SWT.MIN | SWT.MAX); //can be maximised
final Shell shell = new Shell(display, SWT.CLOSE | SWT.TITLE | SWT.MIN); // fixed but can be minimised
//final Shell shell = new Shell(display, SWT.TITLE); // fixed, uncloseable, unminimisable can only be removed by OS killing JVM.
Rectangle boundRect = new Rectangle(0, 0, 1024, 768);
shell.setBounds(boundRect);
Rectangle boundInternal = shell.getClientArea();
shell.setText("Fixed size SWT Window.");
shell.open();
final Text text = new Text(shell, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
text.setEditable(true);
text.setEnabled(true);
text.setText("Oh help!");
text.setBounds(boundInternal);
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
gracias, en realidad lo resolví mientras tanto al agregar: "nuevo Shell (pantalla, SWT.CLOSE | SWT.TITLE)" , y su respuesta hace lo mismo pero tiene adicionalmente MIN – alhcr
No estoy seguro de ello, pero creo que se puede simplemente dejar evento SWT.Resize así:
shell.addListener (SWT.Resize, new Listener() {
public void handleEvent (Event e)
{
return;
}
});
Esto no funciona en la práctica - el cambio de tamaño El oyente se activa después de que la ventana se ha redimensionado, no antes, por lo que establecer 'e.doit' en falso no tiene ningún efecto. En algunas plataformas, puede intentar establecer el tamaño de la carcasa ** de nuevo como lo que era, pero esto se ve raro en algunas plataformas (especialmente con el cambio de tamaño de malla, o plataformas que permiten una buena cantidad de cambio de tamaño antes de disparar ese evento.) En otras plataformas, en realidad obtienes un bucle infinito de eventos cuando cambias el tamaño de un intérprete dentro de un oyente de cambio de tamaño (a menos que configures un indicador de que estás cambiando el tamaño). –
- 1. Evitar que se cambie el tamaño de una ventana SWT horizontalmente
- 2. C# cómo evitar que el usuario cambie el tamaño de la ventana de mi aplicación?
- 3. ¿Cómo evitar que NERDTree cambie el tamaño de la ventana del proyecto en (g) vim?
- 4. ¿Cómo puedo evitar que SplitPane cambie el tamaño de uno de los paneles cuando la ventana cambia de tamaño?
- 5. Cómo evitar que UIBarButtonItem con atributos personalizados cambie de tamaño
- 6. Cómo evitar que el usuario cambie la página con jQuery
- 7. Maximizar una ventana mediante programación y evitar que el usuario cambie el estado de Windows
- 8. Qt: ¿cómo hacer que mainWindow cambie automáticamente el tamaño cuando se cambie el tamaño del widget central?
- 9. Google Maps: cómo evitar que InfoWindow cambie el mapa
- 10. Cómo evitar que Soft Keyboard cambie el tamaño de la imagen de fondo
- 11. ID de ventana de Java SWT
- 12. PhoneGap: ¿Hay alguna manera de evitar que el teclado cambie el tamaño de la vista?
- 13. ¿Cómo evitar que el usuario cambie el tamaño de las columnas de QTableWidget?
- 14. Tamaño de configuración de la aplicación wpf/caliburn.micro mientras permite que el contenido cambie de tamaño con la ventana principal.
- 15. jquery: ¿evitar que la ventana cambie la posición de desplazamiento mientras antepone elementos a una lista?
- 16. android: Cómo evitar el cambio de tamaño de la ventana cuando se muestra el teclado virtual
- 17. ¿es posible que iframe cambie el tamaño sin ayuda de la ventana principal?
- 18. Evitar que los usuarios cambien el tamaño de la ventana/tamaño del formulario
- 19. IE7 no representa parte de la página hasta que la ventana cambie de tamaño o cambie entre las pestañas
- 20. ¿Cómo puedo hacer que la antigua región cambie el tamaño de forma adaptativa en Java GC?
- 21. WPF: ¿Cómo hacer que el lienzo cambie el tamaño automáticamente?
- 22. SWT Tamaño máximo compuesto
- 23. ¿Cómo evitar que el tamaño de UIView cambie de tamaño para ajustarse a la altura de ScrollView (el aumento de tamaño está deshabilitado)?
- 24. ¿Existe alguna manera de evitar que el bloqueo de fuentes cambie la familia de fuentes (y cambie solo el color)?
- 25. ¿Cómo puedo evitar que una ventana de diálogo se oculte?
- 26. ¿Cómo evitar tener una ventana más pequeña que el tamaño mínimo de un UserControl en WPF?
- 27. JFace/SWT: cambie las etiquetas de los botones en InputDialog
- 28. Java JTextArea que cambia el tamaño y se desplaza automáticamente
- 29. Tamaño de fuente que se expande cuando cambia el tamaño de la ventana
- 30. ¿Cómo hacer que una imagen cambie el tamaño de la altura de las pantallas con CSS?
posible duplicado de [la ventana para no cambiar de tamaño con JFace] (http://stackoverflow.com/questions/5191515/non-resizable-window-with-jface) –