Java 计算最后一列值的总和并将其放在TextField上?

Java 计算最后一列值的总和并将其放在TextField上?,java,swing,jtable,Java,Swing,Jtable,我有一个包含数量、价格和金额的表格。如果用户输入数量和价格,则在按键释放时显示金额值。它工作得很好 我在表格下面还有一个文本字段,显示表格最后一列值的总和 当用户更改数据时,同时JTextField值也将更改 现在我正在使用鼠标点击事件。单击文本字段时,它将计算表格最后一列值的总和并显示 有人能帮我吗 这是我的密码: int rowCount = Table.getRowCount(); int lastRow = rowCount - 1; //System.out.println("La

我有一个包含数量、价格和金额的表格。如果用户输入数量和价格,则在按键释放时显示金额值。它工作得很好

我在表格下面还有一个文本字段,显示表格最后一列值的总和

当用户更改数据时,同时JTextField值也将更改

现在我正在使用鼠标点击事件。单击文本字段时,它将计算表格最后一列值的总和并显示

有人能帮我吗

这是我的密码:

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));
}
int rowCount=Table.getRowCount();
int lastRow=rowCount-1;
//System.out.println(“最后一行=”+lastRow);
//System.out.println(“最后一行值为=“+Table.getValueAt(最后一行,0));
if(Table.getValueAt(lastRow,0)==null){
DefaultTableModel tmodel=(DefaultTableModel)Table.getModel();
tmodel.removeRow(lastRow);
} 
否则{
双重价值;
双倍合计=0;
//System.out.println(“行计数=”+rowCount);
对于(int i=0;i
但我不想要这种机制


当用户输入一些值或修改这些值时,该值将同时反映在Textfield中。

我相信您需要一个
focusListener
用于
Textfield
,当用户单击此
Textfield
时,会触发此事件

从表中获取值并在此处进行计算

JTextField textField = new JTextField("A TextField");
textField.addFocusListener(new FocusListener() {
    public void focusGained(FocusEvent e) {
       //do here
      }

在JTable上使用
KeyListener
,而不是
MouseListener

    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()
方法中的处理保持在最低限度