我已经从摆动的表格的选定行中获取数据,现在我需要在不同的文本字段中设置这些数据。
我添加了鼠标监听器。
m_tblHistory.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
onSelectedRow();
super.mouseClicked(e);
}
});
方法onSelectedRow();
@SuppressWarnings({ "unchecked", "rawtypes" })
protected void onSelectedRow() {
DefaultTableModel model = (DefaultTableModel) m_tblHistory.getModel();
int intRow = m_tblHistory.getSelectedRow();
int intColumn = m_tblHistory.getColumnCount();
Vector vecRow = new Vector();
for (int i = 0; i < intColumn; i++) {
vecRow.add(model.getValueAt(intRow, i));
System.out.println("aaaaa = " + m_tblHistory.getModel().getColumnName(i));
}
onSetData(vecRow);
}
现在在onSetData方法中,我需要将数据设置为不同的文本字段。一种方法是我可以对其进行硬编码以获取与个人ID相对应的数据,或者是否有其他方法可以执行此操作或存在?
答案 0 :(得分:0)
我添加了鼠标监听器。
MouseListener不是听取选择更改的正确选择。如果您想要监听行选择更改,则应将ListSelectionListener附加到表ListSelectionModel:
JTable table = new JTable();
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
// your code here
}
});
请参阅Users Selections教程的How to Use Tables部分中的详细信息。
一种方法是我可以对其进行硬编码以获取与个人ID相对应的数据,还是有其他方法可以执行此操作或是否存在?
是的,还有另一种更好,更优雅的方式:实施自己的TableModel。您可以使用AbstractTableModel作为基础。见Creating a Table Model