propiedades español java swing jpanel awt

java - español - ¿Qué hace.pack()?



jpanel wikipedia (1)

El método de paquete mide el tamaño del marco de modo que todos sus contenidos estén en o por encima de sus tamaños preferidos. Una alternativa al paquete es establecer un tamaño de marco explícitamente llamando a setSize o setBounds (que también establece la ubicación del marco). En general, usar pack es preferible a llamar a setSize, ya que el paquete deja al administrador de diseño de cuadros a cargo del tamaño del marco y los administradores de diseño son buenos para ajustarse a las dependencias de la plataforma y otros factores que afectan el tamaño del componente.

Desde el tutorial de Java

También debe consultar Javadocs cada vez que necesite información adicional sobre cualquier API de Java

Estoy aprendiendo sobre JPanel y GridLayout, este fragmento de código producirá un simple JPanel con 6 botones

package testing; import java.io.*; import java.util.*; import java.security.*; import javax.xml.bind.DatatypeConverter; import java.lang.*; import java.awt.*; import javax.swing.*; public class Testing { public static class GridPanel extends JPanel { public GridPanel() { setLayout(new GridLayout(2,3)); setBackground(Color.GREEN); this.setPreferredSize(new Dimension(500,500)); JButton b1 = new JButton ("Button 1"); JButton b2 = new JButton ("Button 2"); JButton b3 = new JButton ("Button 3"); JButton b4 = new JButton ("Button 4"); JButton b5 = new JButton ("Button 5"); JButton b6 = new JButton ("Button 6"); add(b1); add(b2); add(b3); add(b4); add(b5); add(b6); } } public static void main(String[] args) { GridPanel gp = new GridPanel(); JFrame jf = new JFrame(); jf.add(gp); jf.pack(); //code wouldnt work if i comment out this line jf.setVisible(true); } }

Me pregunto por qué mi código no funcionaría si comento jf.pack()