当我点击JTable上的特定行时,我在填充JTextfields时遇到问题。当我单击JTable中的一行时,JTextfields不会填充各自的值。请帮忙。感谢。
我的代码:
scrollPane = new JScrollPane();
scrollPane.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int row = table.getSelectedRow();
String tbl_click = (table.getModel().getValueAt(row, 0).toString());
try{
String sql = "SELECT * FROM employee where EmployeeID = '"+tbl_click+"' ";
stt = con.prepareStatement(sql);
rs = stt.executeQuery();
if(rs.next()){
int ids = rs.getInt("EmployeeID");
id.setText(String.valueOf(ids).trim());
String fn = rs.getString("FirstName");
fname.setText(fn);
String ln = rs.getString("LastName");
lname.setText(ln);
}
stt.close();
}catch(Exception e1){
e1.printStackTrace();
}
}
});
scrollPane.setBounds(312, 277, 551, 246);
frame.getContentPane().add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
table.setModel(DbUtils.resultSetToTableModel(rs));
答案 0 :(得分:1)
MouseEvents
就像雨滴一样,它们从顶部到底部穿过组件层次结构,直到它们遇到监视它们的东西,然后它们停止。
问题的可能原因是JTable
,JScrollPane
位于JScrollPane
内,会阻止MouseEvents
收到任何MouseListener
的通知。
我猜测"您需要将JTable
添加到ListSelectionListener
。事实上,我可能会通过行ListSelectionModel
使用{{1}},而不是