因此,问题有两个部分:-
选择列时要执行的事件处理程序。
获取摘要的代码。
对于第一个(事件处理程序),您可以参考@Jeffrey 的回答。对于摘要部分,您可以编写如下方法:
/* Method to return values in a column of JTable as an array */
public Object[] columnToArray(JTable table, int columnIndex){
// get the row count
int rowCount = table.getModel().getRowCount();
// declare the array
Object [] data = new Object[rowCount];
// fetch the data
for(int i = 0; i < rowCount; i++){
data[i] = table.getModel().getValueAt(i, columnIndex);
}
return(data);
}
从事件处理程序内部调用此方法,如下所示:
public void columnSelectionChanged(ListSelectionEvent e) {
//assuming single column is selected
Object[] data = columnToArray(table,table.getSelectedColumn());
/* type cast if using specific data type. for eg:
* Integer[] data = (Integer[]) columnToArray(table,table.getSelectedColumn());
*/
// other functions to create the summary
}
对象数组可用于计算您需要的摘要,例如查找范围、标准偏差等。这些应该是微不足道的。请记住在调用方法中对 Object 数组进行类型转换。