[Ajuda] Como configurar o tamanho dos componentes. Ex. JLabel, JTextField

5 respostas
I

Prezados, boa noite.
Como faço para configurar o tamanho dos componentes do Swing =/
Tipo, parece que o gerenciador de Layout não me permite mudar o tamanho das coisas...

Por exemplo, no código abaixo. retorna os TextField que ocupam a tela toda de largura e com umas 5 linhas de comprimento...Eu gostaria de deixa-los com apenas uma linha e com ums 3 centimetros de largura.
E os Labeis, eu gostaria de tentar organiza-los para ficar com o texto no centro do programa ao invez do lado esquerdo...

Alguem pode me dar uma ajudinha, me explicando como aprender a organizar os componentes? =/

Obrigado,
Um ótimo final de semana a todos.

package classes;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class tela {
    JFrame tela;
    JButton cadastrar;
    
    JPanel painel;
    JPanel textos;
    
    
    JTextField codigo;
    JTextField animal;
    JTextField nome;
    JTextField raca;
    JTextField dono;
    
    JLabel PetSHOP;
    JLabel lCodigo;
    JLabel lAnimal;
    JLabel lNome;
    JLabel lRaca;
    JLabel lDono;
    
   public tela(){
       tela = new JFrame();
       tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       tela.setSize(600,600);
       tela.setVisible(true);
       
       cadastrar = new JButton("Cadastrar");
       
       
       textos = new JPanel();
       textos.setLayout(new BoxLayout(textos, BoxLayout.Y_AXIS));
       
        lCodigo = new JLabel("Codigo do animal");
        lAnimal = new JLabel("Cachorro, coelho ou Girafa?     (Obs: Digite exatamente o que escolher)");
        lNome = new JLabel("Nome do Animal");
        lRaca = new JLabel("Raca do Animal");
        lDono = new JLabel("Dono do Animal");
        
        
        
        codigo = new JTextField();
        animal = new JTextField();
        nome = new JTextField();
        raca = new JTextField();
        dono = new JTextField();
       
       textos.add(codigo);
       textos.add(lCodigo);
       
       textos.add(animal);
       textos.add(lAnimal);
       
       textos.add(nome);
       textos.add(lNome);
       
       textos.add(raca);
       textos.add(lRaca);
       
       textos.add(dono);
       textos.add(lDono);
       
       
       painel = new JPanel();
       painel.add(cadastrar);
       
       PetSHOP = new JLabel("-- PETSHOP --   Todos Direitos Reservados.\n\n ");
       tela.getContentPane().add(BorderLayout.SOUTH,painel);
       tela.getContentPane().add(BorderLayout.CENTER,textos);
       tela.getContentPane().add(BorderLayout.NORTH,PetSHOP);
   }
    
}
package classes;

import java.sql.Connection;

public class principal {
   public static void main(String[] args){   
       
       tela programa = new tela();
    
   
   }
}

5 Respostas

T

InsaneChess isso pode ser feito usando a classe http://download.oracle.com/javase/1.4.2/docs/api/java/awt/GridLayout.html ela te permite dispor seus componentes do jeito que vc achar melhor. Agora, pra melhorar a coisa, se vc estiver usando o eclipse, ele tem o plugin VisualEditor o que lhe da muito mais recursos. Qq coisa posta aí que te esclareço mais. Abraço e bom trabalho!

F

Geralmente uso o GridBagLayout e consigo um bom controle em questão de configurar tamanho e posição de componentes.

E

Se você está fazendo as telas “na mão”, o MigLayout é uma boa opção.

[EDIT]Esquece a parte que falei dos paineis. Agora que percebi que você já está usando.

Falou…

R

Um pouco trabalhoso no início mas totalmente liberal no que se refere ao tamanho e disposição dos componentes

SpringLayout

V

Também recomendo o MigLayout.

Se não quiser instalar um gerenciador externo, você precisa usar uma combinação de gerenciadores. Eu geralmente uso o GridBagLayout, FlowLayout e BorderLayout.
O GridBag é certamente mais poderoso e flexível de todos. O Border é util para definir áreas em sua tela. E o flow para botõezinhos no canto inferior da tela, como salvar e fechar.

Criado 25 de setembro de 2010
Ultima resposta 27 de set. de 2010
Respostas 5
Participantes 6