Mudando título de uma coluna do JTable

15 respostas
P

Como que eu faço para mudar o título de umas das colunas de um JTable, eu já peguei o JTableHeader dele e agora?

15 Respostas

paulohbmetal

MyTable.getTableHeader().getColumnModel().getColumn(IndiceColuna).setHeaderValue(“Titulo”);

A Paz!!

P

“paulohbmetal”:
MyTable.getTableHeader().getColumnModel().getColumn(IndiceColuna).setHeaderValue(“Titulo”);

A Paz!!

Ok, bufou o negócio aki… você poderia me dar uma mãozinha em outra coisa, como que eu adiciono um evento só para o JTableHeader de um JTable?

P

consegui fazer aki… mais uma vez, brigado pela ajuda

P

estou apanhando para pegar o índice de qual coluna o mouse foi clicado, alguém pode me ajudar?

paulohbmetal

Cara eu nunca precisei de fazer isso não, mas vc pode ver que ele tem os addListeners.Como por exemplo o addMouseLister.Qual evento vc quer adicionar?

A Paz!!

paulohbmetal

Taí:
MyTable.getSelectedColumn();

A Paz!!

P

“paulohbmetal”:
Cara eu nunca precisei de fazer isso não, mas vc pode ver que ele tem os addListeners.Como por exemplo o addMouseLister.Qual evento vc quer adicionar?

A Paz!!

Eu já adicionei os eventos, agora eu não to conseguindo pegar o índice do TableHeader em que o mouse foi clicado

paulohbmetal

Cara vc pode pegar o identificador e o indice do modelo:

MyTable.getTableHeader().getColumnModel().getColumn(MyTable.getSelectedColumn()).getIdentifier();

MyTable.getTableHeader().getColumnModel().getColumn(MyTable.getSelectedColumn()).getModelIndex()

A Paz!!

P

“paulohbmetal”:
Cara vc pode pegar o identificador e o indice do modelo:

MyTable.getTableHeader().getColumnModel().getColumn(MyTable.getSelectedColumn()).getIdentifier();

MyTable.getTableHeader().getColumnModel().getColumn(MyTable.getSelectedColumn()).getModelIndex()

A Paz!!

mostrou o seguinte erro

java.lang.ArrayIndexOutOfBoundsException: -1
        at java.util.Vector.elementAt(Vector.java:434)
        at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
        at Grafico.renomearTabela(Grafico.java:365)
        at Grafico$1.mouseClicked(Grafico.java:37)
        at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
        at java.awt.Component.processMouseEvent(Component.java:5103)
        at java.awt.Component.processEvent(Component.java:4897)
        at java.awt.Container.processEvent(Container.java:1569)
        at java.awt.Component.dispatchEventImpl(Component.java:3615)
        at java.awt.Container.dispatchEventImpl(Container.java:1627)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3207)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
        at java.awt.Container.dispatchEventImpl(Container.java:1613)
        at java.awt.Window.dispatchEventImpl(Window.java:1606)
        at java.awt.Component.dispatchEvent(Component.java:3477)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
P

esta linha

retorna -1… ali que dá o problema

paulohbmetal

Cara vc está querendo é ordenar a JTable pelas colunas?

A Paz!!

paulohbmetal

Se for isso que perguntei acima, então acho que isso resolve:
http://www.esus.com/javaindex/j2se/jdk1.2/javaxswing/editableatomiccontrols/jtable/jtablesortrows.html

A Paz!!

P

“paulohbmetal”:
Cara vc está querendo é ordenar a JTable pelas colunas?

A Paz!!

Eu não estou querendo ordenar, eu queria pegar qual indice do JTabelHeader está selecionado para saber qual alterar

paulohbmetal

Cara, agora acho que consegui o que vc quer: :lol:

MyTable.getTableHeader().columnAtPoint(evt.getPoint());

A Paz!!

paulohbmetal

Sendo mais específico:

MyTable.getTableHeader().addMouseListener(new java.awt.event.MouseAdapter(){
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                System.out.println(MyTable.getTableHeader().columnAtPoint(evt.getPoint()));
            }
        });
Criado 21 de maio de 2004
Ultima resposta 21 de mai. de 2004
Respostas 15
Participantes 2