Wat doet .Pack ()?

Ik ben aan het leren over JPanel en Gridlayout, deze fragment van de code produceert een eenvoudig JPanel met 6 knoppen

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);
    }
}

Ik vraag me af waarom mijn code niet werkt als ik commentaar van jf.pack()


Antwoord 1, Autoriteit 100%

De packMETHODE MATERIËREN Het frame zodat alle inhoud op of boven hun voorkeursformaten zijn. Een alternatief voor pack is om een ​​framegrootte uitdrukkelijk vast te stellen door setSizeof setBounds(die ook de frame-locatie instelt). In het algemeen heeft het gebruik van de verpakking de voorkeur om setSizete bellen, aangezien Pack de frame-lay-outbeheerder de leiding heeft over de framegrootte, en lay-outbeheerders zijn goed in het aanpassen aan platformafhankelijkheden en andere factoren die van invloed zijn op de grootte van de component.

van Java-tutorial

U moet ook verzenden naar Javadocs op elk gewensteld tijd dat u aanvullende informatie nodig hebt over een Java API


Antwoord 2

De methode () is gedefinieerd in de vensterklasse in Java en deze maten het frame zodat alle inhoud op of boven hun voorkeursmaten zijn.

Other episodes