【发布时间】:2015-05-06 12:53:45
【问题描述】:
我想将选定行的内容收集到 Object 类型的数组中。要收集所有选定行的内容,应将这些数组添加到稍后返回的数组列表中。
简化方法:
Content of row --> Object[i] = content of column 1...2...3...i
ArrayList<Object[]> add <-- Object[]
ArrayList 应该是这样的:
list {
[(content of row(0), col(0)), content of row(0), col(1)), content of row(0), col(1))],
[(content of row(1), col(0)), content of row(1), col(1)), content of row(1), col(1))]
[(content of row(2), col(0)), content of row(2), col(1)), content of row(2), col(1))]
}
在下面你会发现我到目前为止的代码,但这不能正常工作,我得到空指针异常。
public static ArrayList<Object[]> getSelectedTaskAsList() {
ArrayList<Object[]> tasks = new ArrayList<Object[]>();
if (table.getSelectedRowCount() > 0) { // check if there are selected rows
int[] selectedRows = table.getSelectedRows();
Object[] taskAsArray = null;
for (int i = 0; i < selectedRows.length; i++) { // print all selected tasks
for (int j = 0; j < table.getColumnCount(); j++) {
taskAsArray[j] = (table.getValueAt(table.convertRowIndexToModel(selectedRows[i]),table.convertColumnIndexToModel(j)));
}
tasks.add(taskAsArray);
}
}
return tasks;
}
首先,我想知道我的方法是“好”还是太难了,或者是否有其他方法。将表中的第一个值添加到taskAsArray[] 数组时发生空指针异常。
【问题讨论】:
-
如果您需要更多信息,请告诉我,我想让这个尽可能简单。
-
我不知道Simplyfied方法是否是个好主意,你很清楚你为......做什么,只是避免简单回答相当空洞的问题
-
NPE 是错误设计或代码的简单输出
-
@mKorbel 你可能是对的,但我不确定我的问题是否足够清楚,因为这只是一个更大项目的一些摘录代码,所以我想解释我的“需求”,就像这样容易理解可能。
-
但这将包括没有选择行的情况,这将导致崩溃。如果选择了至少一个行,我只想运行它。
标签: java arrays swing arraylist jtable