Pintar linhas individuais JTable

2 respostas
gqferreira

Olá pessoal! Estou tendo dificuldades em fazer uma tabela em que eu possa pintar linhas individuais mas não estou conseguindo. Ja li uns 200 tutoriais, explicações e post mas nada… tudo parece muito confuso, gostaria de ver um exemplo simples onde tenha uma tabela com tres linhas e um botao que quando pressionado pinta a linha 1 de azul, isso bastava pra mim entender como funciona mas so encontro coisas confusas pela net.

Valeu pela ajuda!

2 Respostas

laudenpower

Procure estudar sobre a classe CellRenderer, concerteza lá você poderá fazer isso.

lina

Oi,

Realmente isso é um pouco complicado, mas existem exemplos!

Eu fiz um aqui, porém você deverá adapta-lo:

public class PintaJTable extends JFrame
{
	private			DefaultTableCellRenderer	
	io_rd_renderer;
	 
	public PintaJTable() {
		super("Exemplo");
		
		io_rd_renderer		=	new DefaultTableCellRenderer();

		String[] colunas = {"Nome","Estado"};
		Object[][] conteudo = {
	        {"Teste", "Teste"},
	        {"Lina", "SC"},
	        {"Teste", "Testinho"}};

		final JTable tabela = new JTable(conteudo, colunas);
		tabela.setPreferredScrollableViewportSize(new 
	        Dimension(350, 50));
		
		Container c = getContentPane();
		c.setLayout(new FlowLayout());
			
		JButton btn = new JButton("Pintar linha");
		btn.addActionListener(
		  new ActionListener(){
			public void actionPerformed(ActionEvent e){
		    	    	io_rd_renderer.setBackground(Color.RED);    	    		
		    	    	tabela.getColumnModel().getColumn(0).setCellRenderer(io_rd_renderer);		    	    	
		    	    	tabela.repaint();
			}
		  }
		);
			
		JScrollPane scrollPane = new JScrollPane(tabela);
	        c.add(scrollPane);
		c.add(btn);
			
		setSize(400, 300);
		setVisible(true);
	}
	
	public static void main(String args[]) {
		new PintaJTable().setVisible(true);
	}
}

Existe esse também.:

[url]http://www.guj.com.br/posts/list/51579.java[/url]

Tchauzin!

Criado 7 de setembro de 2009
Ultima resposta 8 de set. de 2009
Respostas 2
Participantes 3