Construindo Tabelas

3 respostas
cu_ringa

Alguém pode me dizer que erro tá dando na hora da construçaõ dessa Tabela. Já que existe um construtor de JTable que aceita como argumento dois Vector como:

JTable(Vector rowData, Vector columnNames)

import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.util.*;

public class Teste extends JFrame{

	
	public Teste(){
		
		  Vector coluna_1 = new Vector();
			Vector coluna_2 = new Vector();
									
			coluna_1.addElement("carlos");
			coluna_1.addElement("carlos");
			coluna_1.addElement("carlos");
			coluna_2.addElement("carlos");
			coluna_2.addElement("carlos");
			coluna_2.addElement("carlos");
			
			System.out.println(coluna_1);
		  System.out.println(coluna_2);
						
			JTable tabela = new JTable(coluna_1, coluna_2); 			
			JScrollPane jsp = new JScrollPane(tabela);
			Container c = getContentPane();
			c.add(jsp, BorderLayout.CENTER);
			setSize(350, 120);
			show();	
	}
	
	public static void main(String args[]){
	
		new Teste();
	}
	
}




[size=18]Erro[/size]


[carlos, carlos, carlos]
[carlos, carlos, carlos]
Exception in thread "main" java.lang.ClassCastException: java.lang.String
        at javax.swing.table.DefaultTableModel.justifyRows(DefaultTableModel.jav
a:238)
        at javax.swing.table.DefaultTableModel.setDataVector(DefaultTableModel.j
ava:194)
        at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:131
)
        at javax.swing.JTable.<init>(JTable.java:392)
        at Teste.<init>(Teste.java:24)
        at Teste.main(Teste.java:34)

3 Respostas

cu_ringa

aí New__Radical,

ok, fiz as mudanças q vc falou, so que tá dando um problema, só tá aparecendo nas linhas da tabela “carlos” e “carlos_1”. Nas colunas não tem problema está aparecendo “senha” e “operador”;

valeu!!!

import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.util.*;


public class Teste extends JFrame{

	
	public Teste(){
		
		  Vector coluna_1 = new Vector();
			Vector coluna_2 = new Vector();
			Vector coluna_3 = new Vector();
									
			coluna_1.addElement("operador");
			coluna_1.addElement("senha");
						
			coluna_2.addElement("carlos");
			coluna_2.addElement("carlos_1");
			coluna_2.addElement("carlos_2");
			coluna_2.addElement("carlos_3");
			coluna_2.addElement("carlos_4");
			coluna_2.addElement("carlos_5");
			
			coluna_3.addElement(coluna_2);
			
			System.out.println(coluna_1);
		  System.out.println(coluna_2);
						
			JTable tabela = new JTable(coluna_3, coluna_1); 			
			JScrollPane jsp = new JScrollPane(tabela);
			Container c = getContentPane();
			c.add(jsp);//, BorderLayout.CENTER);
			c.validate();
			setSize(350, 120);
			show();	
	}
	
	public static void main(String args[]){
	
		new Teste();
	}
	
}
N

Cara, para as linhas, tem que ser um Vector de Vector's.
Acho que assim funfa legal! :D

...
		Vector coluna_1 = new Vector();
		Vector coluna_2 = new Vector();
		Vector linha = new Vector();

		coluna_1.addElement("carlos");
		coluna_1.addElement("carlos");
		coluna_1.addElement("carlos");
		coluna_2.addElement("carlos");
		coluna_2.addElement("carlos");
		coluna_2.addElement("carlos");
		linha.addElement(coluna_2);

		System.out.println(coluna_1);
		System.out.println(coluna_2);

		JTable tabela = new JTable(linha, coluna_1);

...
N
"cu_ringa":
aí New__Radical,

ok, fiz as mudanças q vc falou, so que tá dando um problema, só tá aparecendo nas linhas da tabela "carlos" e "carlos_1". Nas colunas não tem problema está aparecendo "senha" e "operador";

valeu!!!

Assim, para cada linha, tem que ser um vector! :wink:
Vector coluna_1 = new Vector(); 
         Vector coluna_2 = new Vector(); 
         Vector coluna_3 = new Vector(); 
         Vector coluna_4 = new Vector(); 
                            
         coluna_1.addElement("operador"); 
         coluna_1.addElement("senha"); 
                   
         coluna_2.addElement("carlos"); 
         coluna_2.addElement("carlos_1"); 
         coluna_4.addElement("carlos_2"); 
         coluna_4.addElement("carlos_3"); 

         coluna_3.addElement(coluna_2);           
         coluna_3.addElement(coluna_4); 
                   
         JTable tabela = new JTable(coluna_3, coluna_1);
E não, um único Vector para todas as linhas.
Criado 11 de janeiro de 2004
Ultima resposta 11 de jan. de 2004
Respostas 3
Participantes 2