2012-02-01 72 views
6

Me gustaría saber si es posible crear una ventana Jframe que no tenga botones maximizar/minimizar (-) y cerrar (x) por defecto. ¡He agregado botones personalizados en cada marco para que el usuario no tenga que meterse con los predeterminados en la esquina superior derecha de la ventana!¿Cómo ocultar los botones minimizar/maximizar y cerrar por defecto en la ventana de JFrame en Java?

+3

Por supuesto, ahora tendrá que meterse con los botones personalizados con errores de usabilidad sutiles. – millimoose

Respuesta

4

Puede utilizar JWindow porque es de forma predeterminada un_decorated, pero se puede setUndecorated() de JFrame/JDialog

otros caminos son

+0

¿Cómo se hace eso con setUndecorated() para JFrame/JDialog! Puede dar un ejemplo ? – Xris

+1

'setDefaultCloseOperations()' no ocultará los botones, solo cambia el comportamiento de la aplicación cuando se cierra la ventana. – millimoose

+1

hmmm Publiqué un enlace a la API, entonces no se requiere ningún ejemplo de adición – mKorbel

3

Use JFrame.setDefaultLookAndFeelDecorated. Puede que no sea exactamente lo que necesita, pero dice Doc,

Proporciona un indicio de la existencia o no JFrames de nueva creación deben tener sus decoraciones para ventanas (tales como las fronteras, los widgets para cerrar la ventana, título. ..) proporcionado por la apariencia actual.

probar este código:

JFrame frame = new JFrame("Example"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(100, 100); 
frame.setUndecorated(true); 
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE); 
frame.setVisible(true); 

Esto eliminará toda la barra de título. También eche un vistazo a este thread.

De lo contrario usar JWindows.

+0

La barra de título de la ventana ha desaparecido por completo, por lo que el efecto secundario es que el usuario no puede mover la ventana arrastrando la barra de título o cambiando el tamaño de la ventana. – Tony

0
JFrame.setDefaultCloseOperation(frame.DO_NOTHING_ON_CLOSE); 

Hará que el botón 'X' no funcione. Es un trabajo para mi

+0

No es lo que se pidió. – EntangledLoops

+0

La única opción funciona para mí. Tengo mi propio botón de cerrar y menú para cerrar la aplicación y allí será necesario verificar la lógica adicional antes de cerrar la aplicación. – Tony

0

Si está utilizando NetBean luego simplemente anular la selección de la opción de tamaño variable en propiedades. Solo deshabilitará el botón Minimizar/Maximizar.

1

frame.setUndecorated(true); frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);

+0

Un pequeño comentario sobre el código sería bueno, pero es una buena respuesta a la pregunta. –

+0

El estilo de decoración de la ventana de configuración parece innecesario. Ver documentos: public void setWindowDecorationStyle (int windowDecorationStyle) Establece el tipo de Decoraciones de ventana (como bordes, widgets para cerrar una ventana, título ...) que debe proporcionar JRootPane. El valor predeterminado es no proporcionar decoraciones de ventana (NINGUNO). –

Cuestiones relacionadas