BorderLayout duvida

3 respostas
D

Boa Tarde, senhores estou tendo dificuldades em alinhar os componentes com o BorderLayout.
Tipo eu queria alinhar os labels no lado esquerdo, estou usando o west, mais eu queria colocar os labels um de baixo do outro, e não u do lado do outro.
A mesma coisa queria fazer com o TextFiel, quero alinhar no centro mais um de baixou do outro.
Outra pergunta o tamanho do label fica conforme a quantidade de caracteres que eu coloco no texto, agora no caso do textFiel eu não quero colocar texto, então como se aumenta o tamanho dele?
Alguém poderia me ajudar?

package View;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class BorderLayoutTeste extends JFrame {
	
	public BorderLayoutTeste() {
		// TODO Auto-generated constructor stub
	
	setVisible(true);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	setSize(400, 400);
	
	setLocationRelativeTo(null);
	
	initComponents();
	
	
	}

	private void initComponents() {
		// TODO Auto-generated method stub
	
		JPanel panel = new JPanel();
		
		JPanel panel2 = new JPanel();
		
		
		
		JLabel lb1 = new JLabel("asas");
		JLabel lb2 = new JLabel("asaas");
		
		JTextField tf1 = new JTextField();
		JTextField tf2 =new JTextField();
		
		panel.add(lb1);
		panel.add(lb2);
		
		panel2.add(tf1);
		panel2.add(tf2);
		
		add(BorderLayout.CENTER,panel);
		add(BorderLayout.WEST,panel2);
		
	}
	
	public static void main(String[] args) {
		BorderLayoutTeste b = new BorderLayoutTeste();
	}

}

3 Respostas

D

ops conseguir alinhar como eu queria usando o GridLayout, o problema é o texfiel que fica com um tamanho muito grande.
Alguém sabe como faço para diminuir ele?

private void initComponents() {
		// TODO Auto-generated method stub
	
		JPanel panel = new JPanel(new GridLayout(2,1));
		
		JPanel panel2 = new JPanel(new GridLayout(2,1));
		
		
		
		JLabel lb1 = new JLabel("asas");
		JLabel lb2 = new JLabel("asaas");
		
		JTextField tf1 = new JTextField();
		JTextField tf2 =new JTextField();
		
		panel.add(lb1);
		panel.add(lb2);
		
		panel2.add(tf1);
		panel2.add(tf2);
		
		add(BorderLayout.WEST,panel);
		add(BorderLayout.CENTER,panel2);
		
	}
doug

Olá
Quando vc usa o grid, eles ficam do tamanho do maior componente… dê uma olhadinha no
gridbaglayout ou se quiser veja outros layout tais como, swinglayout ou tablelayout
dando uma googlada você acha.

Espero ter ajudado
Flwsss

D

bah, meio complicado ficar posicionando o componente to posicionando ele usando o GridBagLayout, mais só conseguido posicionar para baixo.
meio complicado.

package View;

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class BorderLayoutTeste extends JFrame {
	
	public BorderLayoutTeste() {
		// TODO Auto-generated constructor stub
	
	setVisible(true);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	setSize(400, 400);
	
	setLocationRelativeTo(null);
	
	initComponents();
	
	
	}

	private void initComponents() {
		// TODO Auto-generated method stub
	
		JPanel panel = new JPanel(new GridLayout(2,1));
		
		JPanel panel2 = new JPanel(new GridBagLayout());
		GridBagConstraints cons = new GridBagConstraints();
		
		
		cons.gridy=500;
		
		
		JLabel lb1 = new JLabel("asas");
		JLabel lb2 = new JLabel("asaas");
		
		JTextField tf1 = new JTextField();
		JTextField tf2 =new JTextField();
		
		panel.add(lb1);
		panel.add(lb2);
		
		panel2.add(tf1,cons);
		panel2.add(tf2);
		
		add(BorderLayout.WEST,panel);
		add(BorderLayout.CENTER,panel2);
		
	}
	
	public static void main(String[] args) {
		BorderLayoutTeste b = new BorderLayoutTeste();
	}

}
Criado 19 de abril de 2009
Ultima resposta 19 de abr. de 2009
Respostas 3
Participantes 2