Então você gostaria de saber sobre JTable?

23 respostas
F

Começando por este ótimo tutorial do Bruno (brlima):

Tutorial sobre JTable do Swing - parte I

Tutorial sobre JTable do Swing - parte II

Links do Forum

TableHeader
http://www.guj.com.br/posts/list/12628.java

Mudando título de uma coluna do JTable
http://www.guj.com.br/posts/list/12402.java

Ordenamento de um JTable
http://www.guj.com.br/posts/list/11309.java

JTable dá conta?
http://www.guj.com.br/posts/list/10673.java

TableModel e Threads - problemas com o Swing
http://www.guj.com.br/posts/list/12664.java

Selecionar só uma linha de um JTable
http://www.guj.com.br/posts/list/10961.java

Cor de fundo de uma célula de uma JTABLE
http://www.guj.com.br/posts/list/10349.java

Desabilitar a Edição de apenas uma coluna de um JTable
http://www.guj.com.br/posts/list/9893.java

JTable com CLICK, ARRASTE e SOLTE…(???)
http://www.guj.com.br/posts/list/9149.java

Adicionar linhas em JTable
http://www.guj.com.br/posts/list/8823.java

JTable
http://www.guj.com.br/posts/list/8316.java

JTable e evento de teclado…
http://www.guj.com.br/posts/list/7316.java

Como incluir CheckBox em uma Linha JTable?
http://www.guj.com.br/posts/list/1987.java

]['s

23 Respostas

fmeyer

A Simple Interactive JTable Tutorial:
http://www.javalobby.org/articles/jtable/

[]s

keller

Otimos exemplos:
:arrow: http://br.geocities.com/gui_keller/Swing_Examples.zip

Bons exemplos:
:arrow: http://javaalmanac.com/egs/javax.swing.table/pkg.html

Boa Sorte! :thumbup:

V

Ola boy !!!

Sou iniciante em Java … e gostaria de saber se é muito dificil usar um JTable, integrado com Banco de Dados, utilizando javaBean ?

[]'s

Vinicius

M

porque os links nao estao abrindo …

apenas mandando salvar um arquivo .php ???

keller

Os links foram corrigidos.

Igor_Novaes

Massa

Raff

BOm

D
import java.awt.<em>;

import javax.swing.</em>;

import javax.swing.table.DefaultTableCellRenderer;

public class Janela extends JFrame{

//Componentes gráficos

Container tela = this.getContentPane();

JTable tabela;
JScrollPane scroll;

String colunas[] ={“Colocação”,“Time”,“Pontos”};
String linhas[][] = {

{"1","2","3"},
      {"4","5","6"},
      {"7","8","9"}, 
      {"10","11","12"},
      {"13","14","15"},
      {"16","17","18"},
      {"19","20","21"},
      {"22","23","24"},
      {"25","26","27"},
      {"28","29","30"}, 
      {"31","32","33"},
      {"34","35","36"},
      {"37","38","39"},
      {"40","41","42"},
      {"43","44","45"},
      {"46","47","48"},
      {"49","50","51"},
      {"52","53","54"},
      {"55","56","57"},
      {"58","59","60"}

};
//Construtor

public Janela(){

   //Criar a Tabela(JTable)

 tabela = new JTable(linhas,colunas);

  //Mudando cores,fontes,tamanhos etc.

 //Mudando a cor de fundo da Tela


 tela.setBackground(new Color(148,206,232));

//Mudando a fonte da Tabela

 tabela.setFont(new Font("Verdana",0,12));

//Mudando cor do fundo do nome das colunas

tabela.getTableHeader().setBackground(new Color(0,255,64));
 tabela.getTableHeader().setFont(new Font("Comic Sans MS",1,15));

 //Inserindo ícone na Tabela

//Mudando a cor das linhas

tabela.setDefaultRenderer(Object.class,

new DefaultTableCellRenderer(){

public Component getTableCellRendererComponent(

JTable table, Object value,boolean isSelected,

boolean hasFocus,int linha,int coluna){

super.getTableCellRendererComponent(table,value,

isSelected,hasFocus,linha,coluna);

if(linha == 0){

setBackground(new Color(255,255,128));

setForeground(Color.BLACK);

}else if (linha>=1&&linha<=4){

setBackground( new Color(135,220,248));

}else if (linha>=5 && linha<=11){

setBackground( new Color(136,145,217));

}else if (linha>=16){

setBackground( new Color(231,24,24));

setForeground(Color.WHITE);

}else {

setBackground(null);

setForeground(null);

}

return this;

}

});

//Criar o painel de Scroll com a Tabela

scroll = new JScrollPane(tabela);

//Acertando o tamanho do painel de scroll(com JTable)

scroll.setBounds(30,30,300,339);

//Adicionando o painel de scroll na tela

this.setLayout(null);//Informa que vou organizar a janela

tela.add(scroll);

//Mexendo nas configurações

//Alterando o Título da Janela

this.setTitle(“Classificação”);

//Alterando o tamanho da Janela

this.setSize(350,400);

//Alterando para fechar a Janela

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

//Alterando para mostrar a Janela

this.setVisible(true);

}

}

Rage

Este código está completo?

danilasso

keller:
Otimos exemplos:
:arrow: http://br.geocities.com/gui_keller/Swing_Examples.zip

Bons exemplos:
:arrow: http://javaalmanac.com/egs/javax.swing.table/pkg.html

Boa Sorte! :thumbup:

Obrigado keller … vc salvou a minha vida com esses links cara … tava me matando para fazer aparecer as colunas do JTable …
mas agora tá tudo resolvido …

flw … abrazzz

FFSilvaJAVALY

A Simple Interactive JTable Tutorial:
http://www.javalobby.org/articles/jtable/
mto boa!

vlw

felipe.sodre

Ola pessoal, sei que o assunto está meio massante.

mas alguem poderia me ajudar com um duvida?

é o seguinte tenho esse metodo que preenche um objeto e cria o DefaultTableModel

Alguem sabe com eu populo ele com o objeto(celulas)?

private void preenchegrid()
{

String[] colunas = {"Código do Gênero","Descrição"};    
     lista = acf.getListaDeGeneros();
     DefaultTableModel dtm = new DefaultTableModel(colunas,2);
    
    Object celulas[][] = new Object[lista.size()][lista.size()];
    
    for(int i = 0; i < lista.size(); i++ )
    {
          
            celulas[i][0] = lista.get(i).getId_genero();               
                                        
    }
       for(int i = 0; i < lista.size(); i++ )
       {    
             celulas[i][1] = lista.get(i).getDescricao();  
             
       }
}
S

felipe.sodre:
Ola pessoal, sei que o assunto está meio massante.

mas alguem poderia me ajudar com um duvida?

é o seguinte tenho esse metodo que preenche um objeto e cria o DefaultTableModel

Alguem sabe com eu populo ele com o objeto(celulas)?

private void preenchegrid()
{

String[] colunas = {"Código do Gênero","Descrição"};    
     lista = acf.getListaDeGeneros();
     DefaultTableModel dtm = new DefaultTableModel(colunas,2);
    
    Object celulas[][] = new Object[lista.size()][lista.size()];
    
    for(int i = 0; i < lista.size(); i++ )
    {
          
            celulas[i][0] = lista.get(i).getId_genero();               
                                        
    }
       for(int i = 0; i < lista.size(); i++ )
       {    
             celulas[i][1] = lista.get(i).getDescricao();  
             
       }
}</blockquote>

também estou com uma dúvida parecida com a sua…

Jose111

Bons Links.
Jtable são meus pesadelos no Java…

O

Opa, só passando pra avisar que o primeiro link tá dando fora do ar…

Abraços

Orlando Vinícius

David_Jr1

kkkk… o melhor que se faz eh juntar todo este pesadelo e fazer uma classe fácil de se manipular, foi o q eu fiz…
criei o DABJGrid, ela eh especializada em ResultSets se auto preenche e pode-se até operar nela como se fosse
uma JTable…

eumagnun

Boa noite pessoal,

Estou precisando preencher um TableModel com um ArrayList que está sendo retornado de um metodo de busca de minha classe DAO.
Nenhum erro é apresentado, porém as informações não são exibidas. Fiz um teste com um array de string’s e funfou mas a intenção é usar o método.
Segue código, Vlw :smiley: :

package GUI;

import banco.ContatoDAO;
import banco.ModeloTabela;
import java.awt.Color;
import java.awt.GridLayout;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;

public class testeTela extends JFrame{

    JPanel      p1   = new JPanel();
    JPanel      p2   = new JPanel();
    JPanel      p3   = new JPanel();
    JPanel      p4   = new JPanel();
    JButton     b1   = new JButton("OK");
    JLabel      l1   = new JLabel("Eis que deverá haver uma tabela com dados abaixo: ");
    JTable      tab1;

   public JTable createJTable() throws SQLException{

        ContatoDAO dao = new ContatoDAO();
        ArrayList dados = dao.buscaContato();

        String[] colunas  = new String[]{"ID","NOME","SEXO","NASCIMENTO","EMAIL"};

        ModeloTabela modeloTab = new ModeloTabela(dados, colunas);

        //teste
        ArrayList linhaNova = new ArrayList();
        linhaNova.add(new String[]{"34","pedro","m","12/11/1987","[email removido]"});
        modeloTab.setLinhas(linhaNova);

        System.out.println(modeloTab.getRowCount());


        JTable   jtable ;
        jtable = new JTable();
        jtable.setModel(modeloTab);
        
       // jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        return jtable;
    }
    

    public testeTela() throws SQLException{
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setTitle("Tela para teste de tabelas");
        this.getContentPane().setLayout(new GridLayout(3,1));
        this.setResizable(true);

        
        tab1 = createJTable();

        p1.add(l1);
        p1.setBackground(Color.BLUE);
        p2.add(tab1);
        b1.setBackground(Color.red);
        p3.add(b1);
        getContentPane().add(p1);
        getContentPane().add(p2);
        getContentPane().add(p3);
        
        this.pack();
    }

    public static void main(String args[]) throws SQLException{
        testeTela tela = new testeTela();
        tela.setVisible(true);

    }

}
eumagnun

Resolvi!!! Mas ainda assim gostaria de sugestões quanto a uma maneira mais eficiente de fazer isso.

package GUI;

import banco.ContatoBean;
import banco.ContatoDAO;
import banco.ModeloTabela;
import java.awt.Color;
import java.awt.GridLayout;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;

public class testeTela extends JFrame{

    JPanel      p1   = new JPanel();
    JPanel      p2   = new JPanel();
    JPanel      p3   = new JPanel();
    JPanel      p4   = new JPanel();
    JButton     b1   = new JButton("OK");
    JLabel      l1   = new JLabel("Eis que deverá haver uma tabela com dados abaixo: ");
    JTable      tab1;

   public JTable createJTable() throws SQLException{

        ContatoDAO dao = new ContatoDAO();
        ArrayList dados = new ArrayList();
        ArrayList<ContatoBean> aux = new ArrayList<ContatoBean>();
        aux = dao.buscaContato();
        
        //Essa foi maneira que consegui fazer rodar
        for(ContatoBean c: aux){
            Integer indice = c.getId();
            dados.add(new String[]{indice.toString(),c.getNome(),c.getSexo(),c.getData().toString(),c.getEmail()});
        }

        String[] colunas  = new String[]{"ID","NOME","SEXO","NASCIMENTO","EMAIL"};

        ModeloTabela modeloTab = new ModeloTabela(dados, colunas);

        System.out.println(modeloTab.getRowCount());

        JTable   jtable = new JTable();
        jtable.setModel(modeloTab);
        
        jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        return jtable;
    }

    public testeTela() throws SQLException{
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setTitle("Tela para teste de tabelas");
        this.getContentPane().setLayout(new GridLayout(3,1));
        this.setResizable(true);

        
        tab1 = createJTable();

        p1.add(l1);
        p1.setBackground(Color.BLUE);
        p2.add(tab1);
        b1.setBackground(Color.red);
        p3.add(b1);
        getContentPane().add(p1);
        getContentPane().add(p2);
        getContentPane().add(p3);
        
        this.pack();
    }

    public static void main(String args[]) throws SQLException{
        testeTela tela = new testeTela();
        tela.setVisible(true);

    }

}
padoca

:smiley:

Y

Ola pessoal eu tenho que fazer um programa (estagio) para uma universidade, e eu estou fazendo um progrma aonde o cara da universidade digita o nome e o valor da despesa e no final quando ele clicar em um botão que se chama btSomar, automaticamente esse botão tem que fazer a soma de todos os valores da despesas e mostra em um jTextField.

a tabela do banco de dados é o seguinte:
nome da tablea: balanco
colunas:
id
nd=nome da despesa
vd=valor da despesa

Atenção: estou usando o Netbeans
eu sei fazer a soma dos valores só no mysql, mas não sei como fazer isso no netbeans

esta imagem é a interface do meu programa.

por favro galera alguem me ajuda a descobri como fazer essa soma!!

Um abraço

Y

Ola Galera, eu to querendo saber como eu faço para transportar o meu banco de dados para outro pc, eu estou usando o mysql e o meu banco da muito grande!
Me ajudem ai por favor!!
Abraço a todos

vfpribeiro

Alguém me sabe dizer como se pinta as linhas de uma JTable para se obter um efeito zebrado?

P
oi gente, bah estou com um superproblema criei um table model e quero pegar itens do banco de dados e jogar ali só que fica tudo fora de ordem ,este problema esta no seguinte topicoo [url]http://www.guj.com.br/java/236975-ajuda-para-inserir-itens-do-arraylist-na-telaresolvido[/url] bem ja tentei de tudo para arrumar os itens na tela agora estou tentando usar o setvalueat para colocar os itens na posição correta mas não ta dando mto certo,o codigo é o seguinte
ArrayList<String>disciplinas=new ArrayList<String>();
	ArrayList<String>modulos=new ArrayList<String>();
	ArrayList<String>notas=new ArrayList<String>();
	ArrayList<String>atividades=new ArrayList<String>();
	Aluno1TableModel model;
	private void geraTabela3()
	{
		try
		{   	Aluno1 aluno;
		model=new Aluno1TableModel();     
		resultado = comando.executeQuery("select disciplina,modulo,nota,atividade from nota where rc_aluno='"+ t0.getText() +"'");  
		while(resultado.next())  
		{  
			//primeiro pegar todos os campos preenchidos e depois organiza-los lado a lado na jtable  
			aluno=new Aluno1();  
			aluno.setDisciplina(resultado.getString(1)); 
			disciplinas.add(resultado.getString(1));
		//	System.out.println("disciplina inserida( "+resultado.getString(1)+" )");

			aluno.setModulo(resultado.getString(2)); 
			modulos.add(resultado.getString(2));
			//System.out.println("modulo inserido( "+resultado.getString(2)+" )");

			aluno.setNota(resultado.getString(3));  
			notas.add(resultado.getString(3));
			//System.out.println("nota inserida( "+resultado.getString(3)+" )");

			aluno.setAtividade(resultado.getString(4));  
			disciplinas.add(resultado.getString(4));
		//	System.out.println("atividade inserida( "+resultado.getString(4)+")");

			model.addAluno(aluno);  
		}
		table = new JTable(model);
		for(int i=0;i<model.getRowCount();i++)
		{
			table.getModel().setValueAt(disciplinas, i, 0);
			System.out.println("disciplina trocando por..."+table.getModel().getValueAt(i, 0));
			table.getModel().setValueAt(modulos, i, 1);
			System.out.println("modulo trocando por..."+table.getModel().getValueAt(i, 1));
			table.getModel().setValueAt(notas, i, 2);
			System.out.println("nota trocando por..."+table.getModel().getValueAt(i, 2));
			table.getModel().setValueAt(atividades, i, 3);
			System.out.println("atividade trocando por..."+table.getModel().getValueAt(i, 3));
		}

repaint();

		JScrollPane scroller = new JScrollPane(table);
		scroller.setVisible(true);
		scroller.setBounds(20, 270, 700, 150);
		painel.add(scroller, null);
		//fazer com que todos os itens do array de disciplina seja add na jtable

		}
		catch (SQLException erro) {
			erro.printStackTrace();
		}
	}
se alguém puder me ajudar a encontrar os erros... obrigada
Criado 19 de junho de 2004
Ultima resposta 13 de abr. de 2011
Respostas 23
Participantes 21