2011-12-20 13 views
6

Ho un JPanel che contiene due JComponents, ad esempio due JButtons, btnLeft e btnRight. Voglio che questi due pulsanti siano allineati orizzontalmente e voglio che btnLeft sia sul lato sinistro di JPanel e btnRight sul lato destro dello JPanel con qualunque spazio rimanga in mezzo.Allineamento di JComponents ai lati sinistro e destro di un JPanel

So che posso fare questo con un BoxLayout con l'aggiunta di una traversa orizzontale in cui devo specificare la quantità di spazio tra, ma ci deve essere un modo più semplice, senza dover specificare quali lo spazio a sinistra-over in mezzo è.

Come posso fare?

risposta

4

Suona come horizontalGlue è quello che stai cercando:

JComponent comp = new JPanel(); 
    comp.setLayout(new BoxLayout(comp, BoxLayout.LINE_AXIS)); 
    comp.add(new JLabel("left")); 
    comp.add(Box.createHorizontalGlue()); 
    comp.add(new JLabel("right")); 
2

Se non ti dispiace pulsanti allungata in senso verticale, perché non provare:

import java.awt.BorderLayout; 

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class JFrame1 { 
public static void main(String[] args) { 
     JFrame frame = new JFrame(); 
     JButton btn1 = new JButton("Btn1"); 
     JButton btn2 = new JButton("Btn2"); 
     frame.setLayout(new BorderLayout()); 
     frame.setSize(500, 400); 
     frame.add(btn1, BorderLayout.WEST); 
     frame.add(btn2, BorderLayout.EAST); 
     frame.show(); 
    } 
} 

enter image description here

+0

anche considerare un layout annidato in 'EAST' e' WEST', 'FlowLayout'. – trashgod