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