Domanda

Quando aggiungo un JPanel(1) nel mio GridBagLayout JPanel(2), il mio JPanel(1) viene ridotto in un minuscolo quadrato situato al centro.Non so perché sia ​​successo, perché in teoria dovrebbe funzionare.Penso che potrebbe avere qualcosa a che fare con il BorderLayout predefinito?perché ho letto da qualche parte che BorderLayout mette il tuo JPanel al centro.Ma ho già impostato il mio layout come GridBag, quindi non so perché stia accadendo.Ecco il mio codice:

    JFrame f = new JFrame("TEST");

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    f.setSize(300, screenSize.height);
    f.setLocation(screenSize.width - 300, 0);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    GridBagConstraints gbc = new GridBagConstraints();

    JPanel panel = new JPanel(new GridBagLayout());
    JPanel A = new JPanel();
    Dimension d = new Dimension(270, 50);
    A.setSize(d);
    A.setBackground(Color.GREEN);
    JPanel B = new JPanel();
    B.setSize(d);
    B.setBackground(Color.BLUE);

    gbc.gridy = 0;
    panel.add(A, gbc);
    gbc.gridx = 1;
    panel.add(B, gbc);

    f.add(panel);

    f.validate();
    f.repaint();

Inoltre, quando imposto il bordo di A e B su 100 pixel, iniziano a essere visualizzati entrambi.Quindi sono davvero confuso!

È stato utile?

Soluzione

Smettila di tirarti i capelli con GridBagLayout, prova invece MigLayout, risparmierai un sacco di tempo:

http://www.miglayout.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top