我有一个JTable,其中包含“数量”,“价格”和“数量”列。如果用户输入数量和价格,则在释放键时将显示金额值。运行良好。
我在表下方还有一个文本字段,用于显示表的最后一列值的总和。
当用户更改数据时,同时JTextField值也将更改。
现在,我正在使用鼠标单击事件。单击textField时,将计算表格最后一列的值之和并显示。
谁能帮我?
这是我的代码:
int rowCount = Table.getRowCount();
int lastRow = rowCount - 1;
//System.out.println("Last Row = " + lastRow);
//System.out.println("Last Row Value is = " + Table.getValueAt(lastRow, 0));
if (Table.getValueAt(lastRow, 0) == null) {
DefaultTableModel tmodel = (DefaultTableModel) Table.getModel();
tmodel.removeRow(lastRow);
}
else {
double value;
double total = 0;
//System.out.println("Row Count = " + rowCount);
for (int i = 0; i < rowCount; i++) {
value = (double) Table.getValueAt(i, 5);
total = total + value;
}
totalField.setText(new DecimalFormat("##.##").format(total));
}
但是我不需要这种机制。
当用户输入一些值或修改值时,该值将同时反映在“文本字段”中。
最佳答案
在JTable上使用MouseListener
代替KeyListener
。
table.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
// You can set the value of textField to the value of Jtable column here.
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
});
但是请注意,在表列中的每个击键操作都将调用此方法。因此,应将
keyTyped()
方法中的处理保持最少。关于java - 计算最后一列值的总和并将其放在TextField上?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30725624/