jTable에서 특정 행을 선택하고 삭제를 시도하면 jTable이 데이터베이스의 최신 데이터로 업데이트됩니다. 이것은 내가 JTable의 설정 방법은 다음과 같습니다jTable에서 삭제를 수행 할 때 ArrayIndexOutOfBound 오류가 발생했습니다.
private JTable getJTableManageReplies() {
jTableManageReplies.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jTableManageReplies.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
int viewRow = jTableManageReplies.getSelectedRow();
// Get the first column data of the selectedrow
int replyID = Integer.parseInt(jTableManageReplies.getValueAt(
viewRow, 0).toString());
eForumRepliesAdmin reply = new eForumRepliesAdmin(replyID);
replyID = JOptionPane.showConfirmDialog(null, "Are you sure that you want to delete the selected reply? " , "Delete replies", JOptionPane.YES_NO_OPTION);
if(replyID == JOptionPane.YES_OPTION){
reply.deleteReply();
SetUpJTableManageReplies();}
}
}
});
return jTableManageReplies;
}
public void SetUpJTableManageReplies() {
DefaultTableModel tableModel = (DefaultTableModel) jTableManageReplies
.getModel();
String[] data = new String[5];
db.setUp("IT Innovation Project");
String sql = "Select forumReplies.reply_ID,forumReplies.reply_topic,forumTopics.topic_title,forumReplies.reply_content,forumReplies.reply_by from forumReplies,forumTopics WHERE forumReplies.reply_topic = forumTopics.topic_id ";
ResultSet resultSet = null;
resultSet = db.readRequest(sql);
tableModel.getDataVector().removeAllElements();
try {
while (resultSet.next()) {
data[0] = resultSet.getString("reply_ID");
data[1] = resultSet.getString("reply_topic");
data[2] = resultSet.getString("topic_title");
data[3] = resultSet.getString("reply_content");
data[4] = resultSet.getString("reply_by");
// Add data to table model
tableModel.addRow(data);
}
resultSet.close();
} catch (Exception e) {
System.out.println(e);
}
}
그리고 이것은 내 코드는 데이터베이스에서 삭제를 수행하는 것입니다 : 그러나
public boolean deleteReply() {
boolean success = false;
DBController db = new DBController();
db.setUp("IT Innovation Project");
String sql = "DELETE FROM forumReplies where reply_ID = " + replyID
+ "";
if (db.updateRequest(sql) == 1)
success = true;
db.terminate();
return success;
}
, 나는 SetUpJTableManageReplies의 Methos의 추가 직후 ArrayIndexOutOfBound를 오류 메시지가 jDialog 상자에. 나는 사용자가 특정 행을 선택할 때처럼 삭제하려고 확인하려고 튀어 나올 것입니다. 그런 다음 yes를 클릭하면 바로 jTable 데이터가 새로 고쳐집니다. 누군가 가이드 좀 줄 수있어? 미리 감사드립니다.
'ArrayIndexOutOfBound' 예외에서 스택 트레이스를 게시 할 수 있습니까? –
java.lang.ArrayIndexOutOfBoundsException : 9> = 1. 삭제를 수행 한 직후 현재 데이터베이스 테이블에 9 행의 데이터가 있습니다. – Newbies
아무도 문제가 뭔지 알아? – Newbies