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.