java swing jframe insets

java - ¿Cómo puedo configurar las inserciones de un JFrame?



swing insets (4)

¿Hay alguna manera de establecer las inserciones de un JFrame ? Lo intenté

frame.getContentPane().getInsets().set(10, 10, 10, 10);

y

frame.getInsets().set(10, 10, 10, 10);

pero ninguno de ellos parece funcionar.


Como esta pregunta aún no tiene una respuesta definitiva, puedes hacerlo como dice basiljames aquí . La forma correcta de hacerlo sería extender un JFrame y luego anular el método getInsets() .

Por ejemplo

import javax.swing.JFrame; import java.awt.Insets; public class JFrameInsets extends JFrame { @Override public Insets getInsets() { return new Insets(10, 10, 10, 10); } private JFrameInsets() { super("Insets of 10"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setMinimumSize(getSize()); setVisible(true); } public static void main(String[] args) { new JFrameInsets(); } }


Tienes que crear un objeto de LayOutConstraint y establecer sus Insets. Al igual que en el ejemplo siguiente, he usado GridBagLayout () y he usado el objeto GridBagConstraint ().

GridBagConstraints c = new GridBagConstraints(); JPanel panel = new JPanel(new GridBagLayout()); c.insets = new Insets(5, 5, 5, 5); // top, left, bottom, right c.anchor = GridBagConstraints.LINE_END; // Row 1 c.gridx = 0; c.gridy = 0; c.anchor = GridBagConstraints.LINE_START; panel.add(isAlgoEnabledLabel, c);


Insets los Insets de JFrame no sería la esencia de tu problema real. Para responder a su pregunta, no puede establecer Insets of JFrame . Debe extender JFrame y anular el método getInsets para proporcionar las inserciones que necesita.


JPanel contentPanel = new JPanel(); Border padding = BorderFactory.createEmptyBorder(10, 10, 10, 10); contentPanel.setBorder(padding); yourFrame.setContentPane(contentPanel);

Básicamente, contentPanel es el contenedor principal de tu marco.