O que tá errado?

12 respostas
zerokelvin

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);
}

12 Respostas

BrunoBastosPJ

Adiciona ela no ContentPane!

Trebloc

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).

R
eu fiz assim...
/*
 * 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);
}
   }
ViniGodoy

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

pvrsouza

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!

R

ora, mas qual é o problema da defaulttablemodel ?

pvrsouza

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

ViniGodoy
  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.
pvrsouza

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

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

zerokelvin

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!

pedroroxd

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)

magocebolinha
  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.

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

Criado 29 de março de 2010
Ultima resposta 30 de mar. de 2010
Respostas 12
Participantes 8