ventana titulo salir quitar minimizar maximizar los cerrar botones boton barra java swing jframe look-and-feel windowlistener

salir - quitar barra de titulo jframe java



DiseƱo personalizado para botones Cerrar/Minimizar en JFrame (4)

  1. Establecer jframe undecorated .
  2. Coloque una jlabel para cada botón.
  3. Coloque su propio icono para cada Btn .
  4. Coloque mouseListeners para cada jlabel y especifique el código, por ejemplo, System.exit(0);/set ICONIFIED option

Me gustaría aplicar mis propios botones de cerrar y minimizar. ¿Hay alguna manera de cambiar el diseño de JFrame ?


El truco está en el PLAF y setDefaultLookAndFeelDecorated(true) ( Especificación de Decoraciones de Ventana ).

P.EJ

import java.awt.BorderLayout; import javax.swing.*; public class FrameCloseButtonsByLookAndFeel { FrameCloseButtonsByLookAndFeel() { String[] names = { UIManager.getSystemLookAndFeelClassName(), UIManager.getCrossPlatformLookAndFeelClassName() }; for (String name : names) { try { UIManager.setLookAndFeel(name); } catch (Exception e) { e.printStackTrace(); } // very important to get the window decorations. JFrame.setDefaultLookAndFeelDecorated(true); JFrame f = new JFrame(UIManager.getLookAndFeel().getName()); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JPanel gui = new JPanel(new BorderLayout()); f.setContentPane(gui); JTree tree = new JTree(); tree.setVisibleRowCount(4); gui.add(tree, BorderLayout.LINE_START); gui.add(new JScrollPane(new JTextArea(3,15))); JToolBar toolbar = new JToolBar(); gui.add(toolbar, BorderLayout.PAGE_START); for (int ii=1; ii<5; ii++) { toolbar.add(new JButton("Button " + ii)); if (ii%2==0) { toolbar.addSeparator(); } } f.pack(); f.setLocationByPlatform(true); f.setVisible(true); } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new FrameCloseButtonsByLookAndFeel(); } }); } }


Lo único que sé que se puede hacer es agregar un WindowListener al JFrame y manejar los eventos de cierre en ese oyente. Puede hacer prácticamente cualquier cosa, como mostrar diálogos o incluso cancelar el cierre de JFrame .

Consulte este tutorial para obtener más detalles sobre cómo escribir dichos oyentes.

En cuanto a minimizar: hasta donde yo sé, no hay forma de controlar o modificar dicho comportamiento, está completamente controlado por el sistema operativo.

La única forma de cambiar el aspecto de los botones minimizar / cerrar / maximizar es usar un LookAndFeel personalizado y establecer JFrame.setDefaultLookAndFeelDecorated (true); .