当在数据模型表中插入行时,对于第一条记录来说效果很好。如果表格为空,则在条形码=bcode_txt增量数量时插入一行。但在第一次记录之后,它不起作用。它会增加并创建新行(重复)。下面是供审查的代码。
private void jBCodeKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
int numofrows = jTable1.getRowCount();
if (numofrows == 0) {
insert_row();
}
if (!(numofrows == 0)) {
for (int i = 0; i < numofrows; i++) {
int c_bcode = Integer.parseInt(model.getValueAt(i, 2).toString());
int bcode_txt = Integer.parseInt(jBCode.getText());
if (bcode_txt == c_bcode) {
int curr_qty = Integer.valueOf(model.getValueAt(i, 3).toString());
String entered_qty = p_qty.getText();
Double up = Double.parseDouble(p_u_price.getText());
int q = Integer.parseInt(entered_qty);
Double tp = q * up;
model.setValueAt(tp, i, 6);
q += curr_qty;
model.setValueAt(q, i, 3);
} else if (!(bcode_txt == c_bcode) && (!(numofrows == 0))) {
insert_row();
}
}
}
}
}
我将首先遍历所有行,以确定表中是否存在条形码。完成后,检查是否应该更新现有行或插入新行。
您的基本逻辑可能如下所示:
int barcodeRow = -1;
int bcode_txt = Integer.parseInt(jBCode.getText());
for (int i = 0; i < table.getRowCount(); i++)
{
int c_bcode = Integer.parseInt(model.getValueAt(i, 2).toString());
if (bcode_txt == c_bcode)
{
barcodeRow = i;
break;
}
}
if (barcodeRow != -1)
// update the row
else
insertRow();
另请注意,不应将键侦听器添加到文本字段。相反,您可以添加操作侦听器
。当按下 Enter 键时,将调用操作侦听器。
问题内容: 我有以下两个表(在MySQL中): 如何找出哪些电话是由人,他们提出是不是在?所需的输出将是: 问题答案: 有几种不同的方法可以执行此操作,效率各不相同,具体取决于查询优化器的性能以及两个表的相对大小: 这是最简短的陈述,如果您的电话簿很短,则可能是最快的陈述: 或(感谢WOPR) (忽略这一点,正如其他人所说的那样,通常最好只选择所需的列,而不是’ ‘)
我有下面的JSON代码,有必要在每个记录的末尾添加键/值,如示例所示。我使用JOLT Transform处理器进行JSON转换。 输入: 预期输出: 非常感谢你的帮助。提前感谢。
问题内容: 在SQL Server 2005中获得了此表,该表用于维护合并操作的历史记录: 列FROM_ID(int) 列TO_ID(int) 现在,我需要一个将原始FROM_ID作为输入并返回最后一个可用TO_ID的查询。 因此,例如: ID 1合并到ID 2 以后,ID 2合并为ID 3 稍后再次将ID 3合并为ID 4 因此,我要汇总的查询将作为输入(在我认为的WHERE子句中)ID 1,因
问题内容: 如标题所示,我想选择以分组的每组行的第一行和最后一行。 我在此表中包含以下数据: 我需要获取的是列开头的第一个值和列末尾的最后一个值,并按group by group列进行分组。 结果表应如下所示: 我使用和和进行了查询。它可以在SQL Server 2012中使用,但不能在SQL Server 2008中使用。我需要一个可以在SQL Server 2008中执行的查询。 问题答案:
问题内容: 我正在寻找连接2个表并仅显示明细表的最后一条记录的正确SQL代码。 我有一个带有2个表的数据库, 每个交易都有多个评论,但是我想创建一个显示所有交易的视图,并且仅显示每个交易的最后一条评论(由CommentTime确定)字段 问题答案: 编辑:我没有足够接近地阅读初始问题,也没有注意到视图中需要所有DEALS行。以下是我的修改后的答案:
问题内容: 我有以下两个SQL表(在MySQL中): 如何找出哪些电话是由人,他们提出是不是在?所需的输出将是: 任何帮助将非常感激。 问题答案: 有几种不同的方法可以执行此操作,效率各不相同,具体取决于查询优化器的性能以及两个表的相对大小: 这是最简短的陈述,如果您的电话簿很短,则可能是最快的陈述: 或者(由于Alterlife) 或(感谢WOPR) (如其他人所说,忽略它通常最好只选择想要的列