Domanda

Ho fatto un JFrame e all'interno di quel telaio, c'è un pannello su cui ho posizionato vari contenitori usando GridBagLayout. Ho impostato il layout di JFrame essere BorderLayout, e ha aggiunto il pannello in BorderLayout.WEST. Voglio mostrare i container di quel pannello nell'angolo in alto a sinistra. Come lo posso fare?

Anche se provo ad aggiungere pannello a BorderLayout.NORTH allora viene anche visualizzato al centro superiore ma invece Voglio essere nell'angolo in alto a sinistra.

C'è un modo per farlo? Cioè qualsiasi altro layout che dovrei usare come voglio mostrare

label1
button1     button2     button3

label2
button1     button2     button3

label 3
button1     button2     button3
È stato utile?

Soluzione

Questo è facile da fare con solo GridLayout e BorderLayout.

Label-Button Layout

import java.awt.*;
import javax.swing.*;

class LabelButtonLayout {

    public static Component getButtonLayout(int num) {
        JPanel p = new JPanel(new BorderLayout(3,3));

        p.add(new JLabel("Label " + num), BorderLayout.NORTH);

        JPanel b = new JPanel(new GridLayout(1,0,25,5));
        for (int ii=1; ii<4; ii++) {
            b.add(new JButton("Button " + ii));
        }
        p.add(b, BorderLayout.CENTER);

        return p;
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater( new Runnable() {
            public void run() {
                JPanel gui = new JPanel(new GridLayout(0,1,3,15));
                for (int ii=1; ii<4; ii++) {
                    gui.add(getButtonLayout(ii));
                }
                JOptionPane.showMessageDialog(null, gui);
            }
        });
    }
}

Altri suggerimenti

Esistono molti modi per farlo, uno è per nidificare ulteriormente i jpanel. Metti un borderlayout di jpanel e dargli un borderlayout. Quindi aggiungi l'altro tuo JPanel a questo, Borderlayout.west.

Il layout di confine non ti consente di aggiungere qualcosa a nord -ovest direttamente.

Potresti voler fare il layout del JFrame a GridBagLayout, in modo da avere la flessibilità che desideri

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