Dúvida - JPane

8 respostas
thundercas

fala galera, beleza??? Estou tentando montar uma tela de cadastro com cerca de 8 JLabels, 8 JTextFields e 4 Botões. No entanto, o tamanho dos JTextFields não são iguais… Creio ter que organizá-los dentro de 1 JFrame principal e diversos JPane, certo?? Minha idéia eh criar o JFrame como GridLayout e dentro deste criar diversos JPanes com FlowLayout.
A dúvida é: Tenho que criar 1 JPane para cada JTextField para que este respeite seu tamanho dentro do GridLayout???

Alguém pode me ajudar nisto?? Procurei exemplos pela net mas não achei!!

Obrigado!!

8 Respostas

G

Boa tarde thundercas,
dê uma olhada no GridBagLayout…acho que vai te ajudar. Mas já vou adiantando…é o mais chatinho de trabalhar.

[]´s

thundercas

Humm… O livro que eu estava lendo nem tem este Layout =/… Vou pesquisar a respeito… Obrigado gilsonpolito…

ViniGodoy

Você está fazendo o JFrame na unha?

Ou está usando um Netbeans ou um Eclipse da vida?

Se estiver usando o Eclipse, o Visual Editor ajuda bastante a trabalhar com o GidBagLayout.

Outra boa referência é essa aqui:
http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html

Emersonsts

Olá

Você quer q os tamanhos sejam iguais ou que eles nao sejam iguais?

Se forem iguais é só seguir o exemplo abaixo, caso contrario é o gridbag mesmo… ;]

// Criando painel com um grid dentro q contenha 2 linhas com 2 colunas cada linha
JPanel panel = new JPanel(new GridLayout(2,2));

// linha 1  coluna 1
JLabel nome = new JLabel("Nome");
// linha 1 coluna 2
JTextField txtNome = new JTextField();

// linha 2 coluna 1
JLabel telefone = new JLabel("Telefone");
// linha 1 coluna 2
JTextField txtTelefone = new JTextField();

thundercas

ViniGodoy, estou fazendo na unha mesmo… Eu utilizo o Eclipse, mas não uso Interface Gráfica… Acho que, como estou ainda aprendendo Swing, não vale a pena cortar caminha com IDE Gráfica.
Darei uma lida no tutorial que você passou…

Emersonts, quero que sejam diferentes, por isso o GridLayout não me serviu = /…

Obrigado a todos… abraços

thundercas

Galera, seguinte… Estou com a seguinte dúvida referente a GridBagLayout…

Eu vi que para JButton eu não preciso obrigatoriamente definir o tamanho dos botões. É só incluir no Container e já era… Agora, quando aos JTextField, eu preciso definir sempre o tamanho mínimo deles conforme abaixo???

objetoDoGridBag.gridx = 30;

Ou eu to viajando e to fazendo algo errado?? Se for necessário, eu posto o código aqui… Espero que possam me ajudar, obrigado!!!

thundercas

Galera, funçando aqui, percebi que a partir de determinado objeto ele começa a bagunçar a tela, exibindo os JTextField’s sem nenhum espaço para digitação.

Alguém poderia me ajudar??

Seguem abaixo os trechos mais importantes do código:

Classe Construtura

setTitle ("Controle de Ligações");
setBounds (600, 100, 550, 490);
setLocation(150,150);
setResizable(false);
getContentPane().setBackground(Color.gray);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cons = new GridBagConstraints();
layout = new GridBagLayout();
setLayout(layout);
telaCadastrar();

Método Cadastrar

dataLabel = new JLabel ("Data: ");
dataLabel.setForeground(Color.blue);
licencaLabel = new JLabel ("Licença: ");
licencaLabel.setForeground(Color.blue);
telefoneLabel = new JLabel ("Telefone: ");
telefoneLabel.setForeground(Color.blue);
razaoLabel = new JLabel ("Razão: ");
razaoLabel.setForeground(Color.blue);

dataField = new JFormattedTextField(dataMask);
licencaField = new JTextField(6);
telefoneField = new JFormattedTextField(telefoneMask);
razaoField = new JTextField(30);

cons.insets = new Insets(4,4,4,4);
cons.gridx = 0;
cons.gridy = 0;
add(dataLabel, cons);
cons.gridx = 1;
add(dataField, cons);
cons.gridy = 1;
cons.gridx = 0;
add(licencaLabel, cons);
cons.gridy = 1;
cons.gridx = 1;
add(licencaField, cons);
cons.gridy = 2;
cons.gridx = 0;
add(telefoneLabel, cons);
cons.gridy = 2;
cons.gridx = 1;
add(telefoneField, cons);
cons.gridy = 3;
cons.gridx = 0;
add(razaoLabel, cons);
cons.gridy = 3;
cons.gridx = 1;
add(razaoField, cons);
thundercas

Galera, descobri o que é… É porque o campo razãoField está definido com tamanho 50 e na linha não cabe tudo isso… Como posso resolver isso?? Para que, quand o usuário digitar no campo e não couber na linha o sistema automaticamente continuar preenchendo o JTextField da linha de baixo???

valeu!!

Criado 8 de fevereiro de 2008
Ultima resposta 10 de fev. de 2008
Respostas 8
Participantes 4