Originariamente inviato da andbin
Ok, comunque la questione è un'altra. Nella parte WEST (come EAST) BorderLayout
non considera il preferred height del componente (nel tuo caso il JPanel) e gli fa usare tutto lo spazio verticale possibile.
Con un GridLayout che inizialmente contiene 2 colonne (le tue 2 JLabel con i titoli) in 1 riga, allora vuol dire che la riga occupa tutto lo spazio verticale. E siccome JLabel mostra per default il testo centrato in verticale .... le vedi appunto centrate verticalmente.
Hai la "visione" di cosa ti è successo, ora?
La soluzione? Usare 2 JPanel innestati: il pannello che metti direttamente in WEST ha un BorderLayout. Dentro questo pannello, nota, nella parte NORTH (che rispetta il preferred height, quindi sta al "giusto" in altezza) metti un altro pannello che ha il GridLayout.
codice:
JPanel westPanel = new JPanel(new BorderLayout());
JPanel gridPanel = new JPanel(new GridLayout(0, 2));
westPanel.add(gridPanel, BorderLayout.NORTH);
gridPanel.add(new JLabel("T1"));
gridPanel.add(new JLabel("T2"));
gridPanel.add(new JLabel("aaa"));
gridPanel.add(new JLabel("bbb"));
Quando usi i layout manager devi "giocare" molto su questo tipo di composizioni. Ricordalo.