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.