salir - quitar barra de titulo jframe java
DiseƱo personalizado para botones Cerrar/Minimizar en JFrame (4)
- Establecer
jframe undecorated
. - Coloque una
jlabel
para cada botón. - Coloque su propio icono para cada
Btn
. - Coloque
mouseListeners
para cadajlabel
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);
.
cree que está buscando una JWindow
http://docs.oracle.com/javase/7/docs/api/javax/swing/JWindow.html
A continuación, puede crear sus propios botones cuyas acciones pueden minimizar / cerrar su ventana