Ae galera criei meu proprio modelo de tabela e criei uma jtable usandoesse modelo. Defini o titulo das colunas como “Estado” e “Cidade”. Porém quando rodo o programa ele exibe Colunas: A e B ao invés de “Estado” e “Cidade”.
Não to enxergando onde esta o problema.
Olha o codigo, alguem sabe o problema? :
Código do modelo:
package tabelas;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class MeuModelo extends AbstractTableModel
{
private ArrayList linhas;
public String[] colunas;
public MeuModelo(ArrayList dados, String[] colunas)
{
System.out.println(colunas[0]);
this.setColunas(colunas);
this.setLinhas(dados);
}
@Override
public int getColumnCount()
{
return colunas.length;
}
@Override
public int getRowCount()
{
return linhas.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex)
{
String[] linha = (String[]) getLinhas().get(rowIndex);
return linha[columnIndex];
}
public Class getColumnClass(int c)
{
return getValueAt(0, c).getClass();
}
public ArrayList getLinhas()
{
return linhas;
}
public void setLinhas(ArrayList linhas)
{
this.linhas = linhas;
}
public String[] getColunas()
{
return colunas;
}
public void setColunas(String[] colunas)
{
this.colunas = colunas;
}
}
Código da classe que cria a tabela usando o modelo:
import java.awt.Dimension;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import tabelas.MeuModelo;
public class Principal extends JFrame
{
private JScrollPane painel;
public Principal()
{
super();
super.setSize(400, 400);
painel = new JScrollPane();
painel.setViewportView(createJTable());
this.getContentPane().add(painel);
super.pack();
super.show();
}
public JTable createJTable()
{
ArrayList dados = new ArrayList();
String[] colunas = new String[] { "Estado", "Cidade" };
// Alimenta as linhas de dados
dados.add(new String[] { "SP", "São Paulo" });
dados.add(new String[] { "RJ", "Rio de Janeiro" });
dados.add(new String[] { "RN", "Rio Grande do Norte" });
dados.add(new String[] { "ES", "Espirito Santo" });
MeuModelo modelo = new MeuModelo(dados, colunas);
JTable jtable = new JTable(modelo);
jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jtable.setPreferredScrollableViewportSize(new Dimension(600, 400));
return jtable;
}
public static void main(String... args)
{
new Principal();
}
}