O que tá errado?

Cara, o que está errado neste código? ele não aparece a jtable!!!


public class teste{

public static void main(String[] args){

String[][] dados1 = new String [][]{  
{"SP","Sao Paulo"},  
{"RJ","Rio de Janeiro"},  
{"RN","Rio Grande do Norte"},  
 {"PR","Parana"}  
};  
String[] colunas1 = new String []{"Estado","Cidade"};  

DefaultTableModel modelo2 = new DefaultTableModel(dados1, colunas1);  

JTable jtable = new JTable( modelo2 ); 
JFrame f;
f = new JFrame("teste");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(1150,600);
Container cp= f.getContentPane();
cp.setLayout(null);
f.add(jtable);
f.setVisible(true);
}

Adiciona ela no ContentPane!

Como o amigo Bruno já disse, só fazer algo assim:

JFrame frame = ...; frame.getContentPane().add(jTable);

:wink:

E provavelmente alguém viria falar disso aqui, mas já comento também: evite usar DefaultTableModel, é preferível você criar sua própria classe de modelo, estendo a AbstractTableModel (no seu caso, acho que uma EstadosTableModel ou StateTableModel).

eu fiz assim…

[code]
/*

  • teste.java
  • Created on 14 de Janeiro de 2004, 09:32
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

package testes2;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
*

  • @author raghyjose
    */

    public class teste extends JFrame{

    public teste() {
        String[][] dados1 = new String [][]{     
    

{“SP”,“Sao Paulo”},
{“RJ”,“Rio de Janeiro”},
{“RN”,“Rio Grande do Norte”},
{“PR”,“Parana”}
};
String[] colunas1 = new String []{“Estado”,“Cidade”};
DefaultTableModel modelo2 = new DefaultTableModel(dados1, colunas1);
JTable jtable = new JTable( modelo2 );
JFrame f;
f = new JFrame(“teste”);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(1150,600);
JPanel a= new JPanel();
a.add(jtable);
getContentPane().add(a);

   }

public static void main(String[] args){

new teste().setVisible(true);
}
}[/code]

Outro erro é que ele usa o DefaultTableModel. E pior, esse erro é silencioso, o problema aparentemente irá funcionar.

Vini,

Eu até já decorei que o uso do DefaultTableModel é errado de tanto ouvir vc falar nisso!!! kkkkkkkkkkkkkkkkkkkkk

Essa semana, assim que acabar um jogo que eu estou fazendo vou comecar a estudar sistemas mais comerciais(agenda, cadastros, etc etc…) e vou estudar Tables.

Abraços!

ora, mas qual é o problema da defaulttablemodel ?

Veja no perfil do Viny a frase que ele coloca:

“Ei… você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295

Heheheh

  1. É mais difícil que escrever seu próprio TableModel;
  2. É mais lento (usa classes sincronizadas);
  3. Ocupa mais espaço em memória (duplica seus dados);
  4. Deixa o código mais confuso e difícil de manter;
  5. Usa casts inseguros;
  6. Força que você tenha que exibir informações desnecessárias (como o ID) na tabela, ou controlar o ID numa lista separada;
  7. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.
1 curtida

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

P.S: Desculpa ter feito o rumo do post mudar ao falar do comentário do Viny sobre o DefaltuTableModel.

Funcionou…
bom, o código é bem mais complicado, mas eu nao achava onde tava o erro. Na verdade a tabela é montada dinamicamente. Mas já acertei aki. To usando a default, mas vou mudar.

Valeu por enquanto!

Melhor perguntar, qual não é o problema!
Olha a assinatura do viny ou a minha! (Que resolvi adotar, e entrar nessa batalha anti default table model… Espero que o viny nao fique bravo! kkkk)

  1. É mais difícil que escrever seu próprio TableModel;
  2. É mais lento (usa classes sincronizadas);
  3. Ocupa mais espaço em memória (duplica seus dados);
  4. Deixa o código mais confuso e difícil de manter;
  5. Usa casts inseguros;
  6. Força que você tenha que exibir informações desnecessárias (como o ID) na tabela, ou controlar o ID numa lista separada;
  7. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.[/quote]

Meu deussss!!! haUHAuaUHA… essa ultima foi Phoda…