Galera é o seguinte: quero deixar (tambem) selecionado a célula TableHeader quando selecionar uma(s) celula(s).Como no Excel do Office 2003 em diante.Alguém já fez isso?!
A Paz!!
Galera é o seguinte: quero deixar (tambem) selecionado a célula TableHeader quando selecionar uma(s) celula(s).Como no Excel do Office 2003 em diante.Alguém já fez isso?!
A Paz!!
Ja tentou colocar um evento de mudança de coluna, dai pegar o header e trocar a borda dele?? Acho q nao deve ser mto complicado…
Abraços!
Já…Já criei até um renderer mais a nhaca não funcionou.
Ele tem que estar interagido coluna selecionada do JTable. Estranho não?!
A Paz!!
Esse codigo aqui funcionou pra mudar o titulo… So nao to conseguindo dar o refresh no header… pq, altero, soh q ele so muda qdo eu mexo no tamanho da coluna… to tentando achar como parar isso…
jtable.getColumnModel().getSelectionModel().addListSelectionListener(
new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e) {
// muda a cor da coluna
System.out.println("Coluna " + getTabela().getSelectedColumn());
TableColumn coluna = getTabela().getColumnModel().getColumn(getTabela().getSelectedColumn());
coluna.setHeaderValue("{"+ coluna.getHeaderValue() +"}");
System.out.println("Coluna " + coluna.getHeaderValue());
getTabela().doLayout();
getScrollTabela().doLayout();
}
});
ve-se te ajuda em alguma coisa
Dei uma arrumada no codigo aqui.
Precisava dar repaint no formuladio pra aparecer as atualizações…
Agora he com vc… criar seu proprio renderer pra alterar a cor de fundo outra coisa… 
jtable.getColumnModel().getSelectionModel().addListSelectionListener(
new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) return;
System.out.println("Coluna " + getTabela().getSelectedColumn());
TableColumn coluna = getTabela().getColumnModel().getColumn(getTabela().getSelectedColumn());
coluna.setHeaderValue("{"+ coluna.getHeaderValue() +"}");
System.out.println("Coluna " + coluna.getHeaderValue());
MyJTableViewer.this.repaint();
}
});
Isso eu já fiz…Mas tudo bem, vou lutando uma hora ele cede… :lol:
Mas, valeu!!Assim que eu conseguir, coloco aqui.
A Paz!!
Eita, num entendi o pq nao funciona entao… se vc consegue acessar tudo certinho…rssss :roll:
mas blz… Flw!
Aêêêê....Consegui...Taí ...
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
public class TableExemplo extends JFrame{
JTable tabela=null;
JScrollPane scroll=null;
public TableExemplo(){
setBounds(0,0,300,300);
setTitle("Aêêêê..");
setResizable(false);
scroll = new JScrollPane();
scroll.setBounds(0,0,200,200);
tabela = new JTable();
tabela.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Coluna 1", "Coluna 2", "Coluna 3", "Coluna 4"
}
));
tabela.getTableHeader().setDefaultRenderer(new ColumnHeaderRenderer());
tabela.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseMoved(java.awt.event.MouseEvent evt) {
tabela.getTableHeader().repaint();
tabela.repaint();
}
});
tabela.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==evt.VK_RIGHT
|| evt.getKeyCode()==evt.VK_LEFT
|| evt.getKeyCode()==evt.VK_UP
|| evt.getKeyCode()==evt.VK_DOWN){
tabela.getTableHeader().repaint();
tabela.repaint();
}
}
});
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
System.exit(0);
}
});
scroll.setViewportView(tabela);
getContentPane().add(scroll, java.awt.BorderLayout.CENTER);
}
public static void main(String args[]){
TableExemplo tabelaexemplo = new TableExemplo();
tabelaexemplo.show(true);
}
}
class ColumnHeaderRenderer extends JLabel implements TableCellRenderer {
public ColumnHeaderRenderer() {
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
setHorizontalAlignment(JLabel.CENTER);
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(table.getSelectedColumn()==column){
setBackground(table.getSelectionBackground());
}else{
setBackground(table.getTableHeader().getBackground());
}
table.getTableHeader().repaint();
setText(value.toString());
return this;
}
}
A Paz!!
Aêêêê....Consegui...Taí ...import javax.swing.*; import javax.swing.table.*; import java.awt.*; public class TableExemplo extends JFrame{ JTable tabela=null; JScrollPane scroll=null; public TableExemplo(){ setBounds(0,0,300,300); setTitle("Aêêêê.."); setResizable(false); scroll = new JScrollPane(); scroll.setBounds(0,0,200,200); tabela = new JTable(); tabela.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Coluna 1", "Coluna 2", "Coluna 3", "Coluna 4" } )); tabela.getTableHeader().setDefaultRenderer(new ColumnHeaderRenderer()); tabela.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(java.awt.event.MouseEvent evt) { tabela.getTableHeader().repaint(); tabela.repaint(); } }); tabela.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { if(evt.getKeyCode()==evt.VK_RIGHT || evt.getKeyCode()==evt.VK_LEFT || evt.getKeyCode()==evt.VK_UP || evt.getKeyCode()==evt.VK_DOWN){ tabela.getTableHeader().repaint(); tabela.repaint(); } } }); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { System.exit(0); } }); scroll.setViewportView(tabela); getContentPane().add(scroll, java.awt.BorderLayout.CENTER); } public static void main(String args[]){ TableExemplo tabelaexemplo = new TableExemplo(); tabelaexemplo.show(true); } } class ColumnHeaderRenderer extends JLabel implements TableCellRenderer { public ColumnHeaderRenderer() { setBorder(UIManager.getBorder("TableHeader.cellBorder")); setHorizontalAlignment(JLabel.CENTER); setOpaque(true); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if(table.getSelectedColumn()==column){ setBackground(table.getSelectionBackground()); }else{ setBackground(table.getTableHeader().getBackground()); } table.getTableHeader().repaint(); setText(value.toString()); return this; } }A Paz!!