我有一个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/

10-13 04:32