[b]Pessoal,
tenho dois valores dentro da JTable, um na coluna 0 e outro na coluna 1, quero multiplicar estes dois valores e jogar na coluna 2, alguma dica?
Obrigado.[/b]
[b]Pessoal,
tenho dois valores dentro da JTable, um na coluna 0 e outro na coluna 1, quero multiplicar estes dois valores e jogar na coluna 2, alguma dica?
Obrigado.[/b]
Eu faria isto no TableModel, fazendo que a JTable, ao solicitar o valor da coluna 2 já receba o resultado da multiplicação.
[b]voce tem algum exemplo ai, porque eu nunca usei o TableModel, estou começando em java, e estou com algumas dificuldades, se der para ajudar, agradeço.
Obrigado.[/b]
Infelizmente não consegui visualizar suas mensagens privadas. Está ocorrendo erro de página não encontrada.
Sobre os exemplos, segue um exemplo de TableModel que efetua o processo que você falou:
A classe implementa os métodos abstratos de AbstractTableModel, que são os métodos mínimos para o funcionamento de seu TableModel.
import javax.swing.table.AbstractTableModel;
public class TableModel extends AbstractTableModel {
// Valores a serem exibidos. Pode buscar as informações de outra classe.
int[][] values = new int[2][2];
public TableModel() {
values[0][0] = 1;
values[0][1] = 2;
values[1][0] = 3;
values[1][1] = 4;
}
/**
* Retorna a quantidade de colunas a serem exibidas.
* */
@Override
public int getColumnCount() {
// Soma um porque a terceira coluna na verdade não existe na matriz
return values[0].length + 1;
}
/**
* Retorna a quantidade de linhas a serem exibidas.
* */
@Override
public int getRowCount() {
return values.length;
}
/**
* Retorna o valor de determinada linha e coluna.
* */
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
case 1:
// Caso seja de uma das duas primeiras colunas, retorna a posição na
// matriz
return values[rowIndex][columnIndex];
case 2:
// Caso seja a terceira coluna, retorna a multiplicação das
// anteriores;
return values[rowIndex][columnIndex - 2] * values[rowIndex][columnIndex - 1];
}
// Caso não seja nenhuma, retorna zero
return 0;
}
}
E um exemplo de classe principal para testes
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.WindowConstants;
public class Main extends JFrame {
private JTable table = new JTable();
public Main() {
super("Teste table");
table.setModel(new TableModel());
super.add(table);
super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
super.pack();
super.setVisible(true);
}
public static void main(String[] args) {
Main main = new Main();
}
}
Sugiro que você tente construir seu TableModel à partir deste exemplo e, caso não consiga, poste sua dúvida aqui.