Fala pessoal,
Estou trabalhando com a JTable e preciso piscar na tela a célula que teve o valor alterado
Ideias??
Fala pessoal,
Estou trabalhando com a JTable e preciso piscar na tela a célula que teve o valor alterado
Ideias??
CCampos,
eu também estou precisando fazer isso.
Acho que deve haver alguma forma de implementar isso, fazendo com que a própria JTable seja responsável por verificar se houve alguma mudança de valor e disparar algum evento para que o Ticker seja realizado.
Ainda não sei como.
Alguém tem alguma idéia de como fazer isso?
Olá,
você pode lançar uma thread que receba a tabela, modifique a cor da célula, depois de um tempo (1 segundo p.ex.) volta para a cor original e finaliza. Ela seria lançada sempre que houver uma alteração de valor de alguma célula.
Att.
Adelar, esses passos eu já sei, o que eu gostaria é saber como identificar qual celula foi alterada para poder pisca-la
utilizando recursos da JTable.
Se você não tem como saber quando um item é alterado pode ser usado o padrão Observer-Observable na JTable. Não encotrei um bom link que mostre como fazer… por enquanto vou mandar este que tem mais ou menos haver http://www.guj.com.br/posts/list/15/202783.java
Att.
Segue um código de exemplo:
[code]import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
public class Test3 {
public static void main(String args[]) {
final Object rowData[][] = { { "1", "one", "I" }, { "2", "two", "II" }, { "3", "three", "III" } };
final String columnNames[] = { "#", "English", "Roman" };
final JTable table = new JTable(rowData, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
// mostrando a linha e a coluna onde foi realizada a modificação
int linha=e.getFirstRow();
int coluna=e.getFirstRow();
System.out.println(linha + " " + coluna);
}
});
table.setValueAt("",0,0);
JFrame frame = new JFrame("Resizing Table");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 150);
frame.setVisible(true);
}
}[/code]
Att.