Destacar título selecionado de uma Jtable (...nimbus.NimbusLookAndFeel)

3 respostas
U

Olá,

Alguém que já tenha trabalhado com Jtable saberia como destacar o titulo de um Jtable?
Eu já utilizei TableCellEditor,DefaultTableCellRenderer… O problema consiste em destacar o titulo quando clicado com o mouse e eventualmente depois
ao clicar em uma celula, por exemplo, perder esse “destaque”, voltando a cor original do Look And Feel.
… :?
Grato desde já pela atenção!

3 Respostas

janjan

tchê, não lembro com certeza, mas tem que mecher on tableheader… e o maximo que tu conseguirá fazer sera por um html no texto do cabeçalho da coluna…

ou…
encontrar os listeners responsaveis pelo clique do header e da celula
e então definir um UiManagerDefault para aquele componente específico…

não tenho como dizer com certeza como fazer, não estou em casa… mas é por ai…

U

janjan:
tchê, não lembro com certeza, mas tem que mecher on tableheader… e o maximo que tu conseguirá fazer sera por um html no texto do cabeçalho da coluna…

ou…
encontrar os listeners responsaveis pelo clique do header e da celula
e então definir um UiManagerDefault para aquele componente específico…

não tenho como dizer com certeza como fazer, não estou em casa… mas é por ai…

vlw
Não tinha pensado ainda em usar html, irei tentar. Irei tentar ainda mais utilizar as configurações do UiManagerDefault, mas a documentação do look and feel nã tem relação Jtable e titulo.
Continuarei tentando…

U
Realmente é meio complicado.... Achei um codigo um antigo de 2009 mas não funciona....... Em fim, achei um solução parcial. Ao invés de destacar o titulo, contornei o problema destacando todas a celulas referentes.
class ColumnHeaderListener extends MouseAdapter {
		public void mouseClicked(MouseEvent evt) {
			JTable table = ((JTableHeader)evt.getSource()).getTable();
			TableColumnModel colModel = table.getColumnModel();
			colTitulo= colModel.getColumnIndexAtX(evt.getX());
                        //ou
			colTitulo=	tabelaAlunosGerenciar.getColumnModel().getColumnIndexAtX(evt.getX());

			 tabela.setColumnSelectionAllowed(true);
			 tabela.setRowSelectionAllowed(false);
			 tabela.setColumnSelectionInterval(colTituloGerenciar, colTituloGerenciar);
			 tabela.setColumnSelectionAllowed(true);
			System.out.println("O clique ocorreu no titulo da coluna com indice " + colTitulo);
		}
	}
Dai pra fente voce pode colocar o metodos de seleção com codições opostas nos tabela.getSelectionModel().addListSelectionListener... e no tabela.addMouseListener... Boa Sorte ... :wink:
Criado 5 de setembro de 2012
Ultima resposta 5 de set. de 2012
Respostas 3
Participantes 2