Layout

4 respostas
pedroroxd

Pessoal, estou usando um jFrame, e uso conexão MySQL....
Eu tenho que criar uma tabela... O meu jFrame tá certinho, o lugar onde ta as label, os edit e tudo...
Ae eu criei a tabela:

initComponents();

 final DefaultTableModel modelo = new DefaultTableModel();
    JTable tabela = new JTable(modelo);

    // Cria as colunas
    modelo.addColumn("Id");
    modelo.addColumn("Nome");
    modelo.addColumn("Endereço");
    modelo.addColumn("Telefone");
    modelo.addColumn("Celular");
    modelo.addColumn("Email");

    tabela.setPreferredScrollableViewportSize(new Dimension(950, 150));

    Container m = getContentPane();
    m.setLayout(new FlowLayout()); // É por causa desse Layout, que o formulário fica bagunçado

    JScrollPane scrollPane = new JScrollPane(tabela);
    m.add(scrollPane);
Quando eu executo, a tabela aparece, mas o frame fica todo desorganizado... não tem outro layout que eu posso setar ali para não bagunçar o formulário?
Container m = getContentPane();
    m.setLayout(new FlowLayout()); // É por causa desse Layout, que o formulário fica bagunçado

    JScrollPane scrollPane = new JScrollPane(tabela);
    m.add(scrollPane);

4 Respostas

lina

Oi,

Porque a escolha deste FlowLayout? Para utilizar layout’s, deve-se estudar um pouco, não é uma coisa simples de fazer!
Procure entender seus funcionamentos, pois para cada situação, poderá ser utilizado um layout diferente.

Enquanto este estudo não for realizado, utilize NullLayout. (setLayout(null)). Defina as propriedades de tamanho (setBounds, size…) e localização fixamente…

Tchauzin!

mvargens

http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html

pedroroxd
Você disse pra mim usar null... Antes tava assim:
Container m = getContentPane();
    m.setLayout(new FlowLayout()); //Tava assim

    JScrollPane scrollPane = new JScrollPane(tabela);
    m.add(scrollPane);
E o layout tava aparecendo bagunçado, mas aparecia a tabela... Ae eu trokei pro geito que você disse:
Container m = getContentPane();
    m.setLayout(null); //Foi pra assim

    JScrollPane scrollPane = new JScrollPane(tabela);
    m.add(scrollPane);
E o jFrame ficou do geito certo, mas a tabela não apareceu =/ O que eu faço agora? =/
//Tava assim:
m.setLayout(new FlowLayout());
//E colokei assim:
m.setLayout(null);

//Eu axo que tem que ser new alguma coisa....
lina

Oi,

Então… também falei para você definir fixamente as propriedades de tamanho!

Faltou definir um tamanho para a sua Scroll:

JScrollPane scrollPane = new JScrollPane(tabela); scrollPane.setBounds(5,5,500,500); m.add(scrollPane);

Tchauzin!

Criado 31 de agosto de 2009
Ultima resposta 1 de set. de 2009
Respostas 4
Participantes 3