我试图将行从一个表添加到另一个表,还有datepicker,我想检查日期是否匹配。
int i=jTable1.getSelectedRow();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
jXDatePicker1.setFormats(dateFormat);
String date = dateFormat.format(jXDatePicker1.getDate()).toString();
String c1=jTable1.getValueAt(i, 0).toString();
String c2=jTable1.getValueAt(i, 1).toString();
String c3=jTable1.getValueAt(i, 2).toString();
String c4=jTable1.getValueAt(i, 3).toString();
String c5=price.getText().toString();
String c6=jTextField1.getText().toString();
String c7=date;
model.addRow(new Object[]{c1, c2, c3, c4, c5, c6, c7});
jTable2.setModel(model);
while(jTable2.getRowCount()>1) {
for (int k = 0; k < jTable2.getRowCount(); k++) {
if (c7.equals(jTable2.getValueAt(k, 6).toString())) {
}
JOptionPane.showMessageDialog(null, "Record exist");
model.removeRow(jTable2.getRowCount()-1);
return;
}
}
即使日期不同,它也会抛出错误:
似乎没有任何效果我试图比较ID而不是日期
while(jTable2.getRowCount()>1) {
for (int k = 0; k < jTable2.getRowCount(); k++) {
int t1=Integer.parseInt(jTable2.getValueAt(k, 0).toString());
if (c1==t1) {
JOptionPane.showMessageDialog(null, "Record exist");
model.removeRow(jTable2.getRowCount()-1);
return;
}
}
}
将两个值解析为int仍然没有。我的循环不起作用
答案 0 :(得分:1)
我认为你的if语句没有提到任何内容。
否则,不要将两个日期作为字符串进行比较,而是将它们设为Date,然后比较它们。
只需更改这些行:
Date date = dateFormat.parse(jXDatePicker1.getDate().toString());
//your code
Date c7=date;
然后你的if语句应该是:
Date rowDate= dateFormat.parse(jTable2.getValueAt(k, 6).toString());
if (c7.compareTo(rowDate)==0) { //the two dates are equal
JOptionPane.showMessageDialog(null, "Record exist");
model.removeRow(jTable2.getRowCount()-1);
return;
}