No.
Il LayoutManager si setta una sola volta sul contenitore... quello è e quello rimane.
Il secondo parametro del metodo add() di un contenitore indica (ove consentito/necessario) i constraint, ovvero le regole previste dal LayoutManager su come posizionare il componente.
Quindi, se tu setti un FlowLayout su un contenitore, il secondo parametro non serve a nulla: FlowLayout sa già come deve sistemare i componenti.
Diverso è se setti un BorderLayout: il secondo parametro indica dove posizionare l'elemento (NORTH, SOUTH, WEST, EAST, CENTER).
Quindi, per la finestra principale direi che un BorderLayout è la scelta ottimale, in quanto suddivide l'area in 5 (o meno) spazi. Generalmente c'è l'area centrale (quella che occupa più spazio e che può eventualmente estendersi) + le (eventuali) 4 zone laterali.
Direi che la tabella andrebbe posizionata nel CENTER del BorderLayout (parlo di tabella, ma solitamente, si parla di un JScrollPane che contiene la tabella, altrimenti non avrai né le intestazioni di colonna, né la possibilità di scrollare tale tabella).
Nella zona EAST della finestra, metterei un pannello con FlowLayout CENTER oppure con un BoxLayout che si estende secondo l'asse Y.
codice:
// La tua finestra
Container c = getContentPane();
c.setLayout( new BorderLayout() );
// Aggiungo i due elementi: la tabella ed il pannello con il pulsante, la textfield e la label
c.add(tuaTabella, BorderLayout.CENTER);
c.add(tuoPannello, BorderLayout.EAST);
Ora veniamo al pannello:
codice:
// Nel tuo pannello
setLayout( new FlowLayout(FlowLayout.LEFT, 2, 2) ); // I valori sono a caso, guarda la doc
// Dimensiono il pannello
// Assegno una larghezza pari a quella che voglio e l'altezza pari a quella della finestra
setPreferredSize( new Dimension(larghezza, altezza) );
// Dimensiono i componenti in modo che ce ne stiano solo uno per riga
// Supponiamo che la larghezza sia 100
tuaLabel.setPreferredSize( new Dimension(80, 25) );
tuaTextField.setPreferredSize( new Dimension(80, 25) );
tuoPulsante.setPreferredSize( new Dimension(80, 30) );
// Aggiungo la label
add( tuaLabel );
// Aggiungo la TextField
add( tuaTextField );
// Aggiungo il pulsante
add( tuoPulsante );
Il FlowLayout allinea i componenti sulla sinistra (gli ho detto FlowLayout.LEFT). Quando non ce ne stanno più, li porta a capo... io ho fatto in modo che ciascun componente occupi quasi tutta la riga, così il FlowLayout sarà costretto a mandarli tutti a capo... ho costruito così 3 righe.
Ciao.