Tôi đã thêm một người nhấp chuột vào jtable của tôi, khi tôi nhấp đúp vào hàng, sẽ bật lên một cửa sổ cho phù hợp.Vấn đề về trình nghe JTable
jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
double amount = Double.parseDouble(jTable.getValueAt(getSelectedRow(), 4).toString());
String remarks = jTable.getValueAt(getSelectedRow(), 3).toString();
String transactionID = jTable.getValueAt(getSelectedRow(), 1).toString();
new EditFrame(...)
}
});
Mã này tôi đã sử dụng để truy xuất hàng đã chọn.
public int getSelectedRow() {
jTable.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent event) {
int viewRow = jTable.getSelectedRow();
selectedRow = viewRow;
System.out.println(viewRow);
}
});
return selectedRow;
}
Trong trường hợp của tôi, tôi nhận ra khi tôi nhấp vào hàng thứ hai trong thời gian đầu tiên, tôi nhận được null cho selectedRow, chỉ khi tôi chọn dòng đầu tiên sau đó hàng thứ hai, sau đó tôi có thể nhận được dữ liệu chính xác. Và nếu tôi loại bỏ trình nghe chuột thì vấn đề sẽ được giải quyết. Có phải vì tôi làm điều gì đó sai ở người nghe click chuột?
Bạn sẽ sử dụng cái này như thế nào? –