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 pack
METHODE 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 setSize
of setBounds
(die ook de frame-locatie instelt). In het algemeen heeft het gebruik van de verpakking de voorkeur om setSize
te 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.