ventana que pueda programar minimizar maximizar maximice evitar desactivar con como cerrar centrar boton java swing jframe titlebar maximize-window

java - que - jframe no se pueda maximizar



¿Cómo puedo eliminar solo el botón Maximizar de un JFrame? (7)

Tengo un JFrame y quiero eliminar el botón Maximizar de eso.

Escribí el código a continuación, pero eliminé maximizar, minimizar y cerrar mi JFrame .

JFrame frame = new JFrame(); frame.add(kart); frame.setUndecorated(true); frame.setVisible(true); frame.setSize(400, 400);

Solo quiero eliminar el botón Maximizar del JFrame .


En las propiedades de JFrame -> maximumSize = minimumSize. Y redimensionable = falso. ¡Hecho! El botón está deshabilitado.


Hacerlo no redimensionable:

frame.setResizable(false);

Aún tendrá los botones minimizar y cerrar.


No puede quitar el botón de un JFrame . Use un JDialog en JDialog lugar. No tiene un botón maximizar


Si está utilizando Netbean, simplemente deseleccione la opción de tamaño variable en las propiedades. Solo deshabilitará el botón Minimizar / Maximizar.


There describe cómo implementar un "JFrame" sin maximizar y minimizar los botones. Solo necesita "encapsular" un JFrame en JDialog:

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class RemoveMaxAndMinButton extends JDialog{ public RemoveMaxAndMinButton(JFrame frame, String str){ super(frame,str); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent evt){ System.exit(0); } }); } public static void main(String[] args){ try{ RemoveMaxAndMinButton frame = new RemoveMaxAndMinButton(new JFrame(), "Remove the Minimize and Maximize button from the Title Bar"); JPanel panel = new JPanel(); panel.setSize(200,200); JLabel lbl = new JLabel("RoseIndia.Net"); panel.add(lbl); frame.add(panel); frame.setSize(400, 400); frame.setVisible(true); } catch(IllegalArgumentException e){ System.exit(0); } }

}


/** * Removes the buttons from the JDialog title frame. This is a work around * to removing the close button * * This is confirmed to work with the Metal L&F */ public void removeAllTitleFrameButtons() { /* Get the components of the dialog */ Component[] comps = this.getRootPane().getComponents(); /* Indicator to break from loop */ boolean breakFromLoop = false; /* * Go through the components and find the title * pane and remove the buttons. */ for(Component comp : comps) { /* Shall we break from loop */ if(breakFromLoop) break; if(comp.getClass().getName().indexOf("JLayeredPane") >0) { for(Component jcomp : ((JLayeredPane)comp).getComponents()) { if(jcomp.getClass().getName().indexOf("Title") > 0) { /* Get the XXXXTitlePane Components */ Component[] titlePaneComps = ((JComponent)jcomp).getComponents(); for(Component tpComp : titlePaneComps) { if(tpComp instanceof JButton) { ((JButton)tpComp).setVisible(false); } } /* No need to continue processing */ breakFromLoop = true; break; } } } } }


import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; public class Test extends JDialog { public Test(JFrame frame, String str) { super(frame, str); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); } public static void main(String[] args) { try { Test myFrame = new Test(new JFrame(), "Removing maximize button"); JPanel panel = new JPanel(); panel.setSize(100, 100); myFrame.add(panel); myFrame.setSize(100, 100); myFrame.setVisible(true); } catch (IllegalArgumentException e) { System.exit(0); } } }