Ustawienie komponentów w JPanel

0

Witam
Mam taki problem. Chciałbym w pewnym komponencie - JPanel uzyskać takie oto ustawienie elementów JLabel:
http://img202.imageshack.us/img202/1537/ustawieniek.jpg
W moim programie wszędzie stosuję managera GridBagLayout. Problem w tym, że komponenty JLabel(wartość 1, wartość 2, wartość 3)
będą miały zmienne wartości, a zatem ich długość za każdym razem będzie inna. W związku z tym nie wiem jak zrobić aby niezależnie od
ich wartości(również sytuacja gdy wartości te są puste) uzyskać takie ustawienie 3 niezmiennych JLabel(aby znajdowały się z lewej strony). Na początku ustawiam moje elementy w taki sposób:

	public class ProductViewerPanel extends JPanel
       {
	private static final long serialVersionUID = 1L;
	private GridBagConstraints gbc;
	private JLabel nameL;
	private JLabel priceL;
	private JLabel pluL;
	
	public ProductViewerPanel()
	{
		setPanelProperities();
		initializeComponents();
		addComponents();
	}
	
	private void initializeComponents()
	{
		gbc = new GridBagConstraints();
		nameL = new JLabel("Nazwa");
		priceL = new JLabel("Cena");
		pluL = new JLabel("PLU");
	}
	
	private void addComponents()
	{
		gbc.anchor = GridBagConstraints.FIRST_LINE_START;
		gbc.insets = new Insets(5,0,0,0);
		gbc.gridx = 0;
		gbc.gridy = 0;
		add(nameL,gbc);
		
		gbc.gridy = 1;
		add(priceL,gbc);
		
		gbc.gridy = 2;
		add(pluL,gbc);
	}
	
	private void setPanelProperities()
	{
		GridBagLayout gbl = new GridBagLayout();
		setLayout(gbl);
	}
}

Jednak moje JLabel zgodnie z zasadą działania GridBagLayout ustawiają się na środku o tak:
http://img803.imageshack.us/img803/4513/ustawienie.jpg
Mógłbym sprawę załatwić ustawiając odpowiednio parametr inset ale problem w tym, że mój panel w zależności od rozdzielczości ekranu posiada różne rozmiary zatem chcąc odsunąć moje 3 niezmienne JLabel-e w lewą stronę nie mogę odsunąć ich o stałą wartość bo się wszystko zepsuje przy innej rozdzielczości. Może są jakieś proste rozwiązania tego problemu? Mam nadzieję, że sposób w jaki przedstawiłem problem okaże się wystarczający.

Będę bardzo wdzięczny za pomoc oraz wszelkie sugestie.

Pozdrawiam

0

A nie możesz od razu dodać do panelu tych trzech labeli? Z zawartością typu " ".

0

Mogę z tym że w momencie gdy potem moja wartość " " zmieni się na "x" to wtedy moje labele w zamiast zostać po lewej wyśrodkują się z powrotem

0

To daj po prawej stronie nieedytowalne JTextField - one nie zmieniają rozmiaru po skróceniu tekstu.

0

Ok. Załóżmy, że mnie przekonałeś do użycia JTextField. Tutaj pojawia się następujący problem. Po pierwsze dajmy np: taką inicjalizację:
JTextField pole = new JTextField(15);
Jest wszystko ok ale jak zmienię rozdzielczość ekranu to 15 znakowy JTextField się tam nie mieści i przestaje się wyświetlać. Widać jedynie wąziutki mały paseczek o długości 0 znaków.
Kolejna sprawa to w JTextField wpiszę dużo mniej znaków co w JLabel. Da się pomniejszyć czcionkę w JTextField?
Z góry dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1