我的表中的一行是一个组合框。他们可以选择"is"、“否”、“两者” 如果他们选择两者,则必须对构建表的数据数组进行一些修改并刷新表。在上一篇文章中建议在两者的 else 语句中构建我的逻辑。
protected void setValue(Object element, Object value)
{
if((element instanceof AplotDatasetData) && (value instanceof Integer)) {
Integer choice = (Integer)value;
String option = ((AplotDatasetData)element).getMarkupValue();;
if(choice == 0) {
option = "No";
}
else if(choice == 1) {
option = "Yes";
}
else {
option = "Both";
abd.getIndexOfSelectedBoth(); <<<<<<<<<
}
((AplotDatasetData)element).setMarkupValue(option);
getViewer().update(element, null);
}
}
上面的代码位于 OptionEditingSupport 类中。
该表位于 AplotBaseDailog 类中。
因此,在 OptionEditingSupport 类中,我导入了 AplotBaseDailog 类并对其进行了赋值。
AplotBaseDialog abd;
然后我在 AplotBaseDailog 类中编写了一个方法来获取他们刚刚更改为 Both 的列的行索引。我需要索引值来从数组中获取数据。
public void getIndexOfSelectedBoth() {
int row = viewer.getTable().getSelectionIndex();
AplotDataModel.getInstance().rebuildDataArray(row);
updateTableViewer();
}
然后我将行的索引传递给 dataModel 类中的方法。它位于具有数据数组的 dataModel 类中。
我猜我正在重新发明轮子。必须有更好的方法来完成这个过程。现在,我的所有代码都已就位,我在调用 AplotBaseDialog 的行收到空指针错误
else {
option = "Both";
abd.getIndexOfSelectedBoth(); <<<<----
}
能否获取OptionEditingSupport类中的索引?
最佳答案
因此,您想要找到选择“both”的 AplotDatasetData
的索引。
您的 ModelProvider
(APlotDataModel
) 包含一个包含您的数据的 List
,对吧?
每个 List
都实现方法 indexOf(Object)
。所以你可以使用这个方法获取当前对象的索引。
AplotDatasetData selected = ...
int index = AplotDataModel.getInstance().getIndexOf(selected);
在你的模型中:
public int getIndexOf(APlotDatasetData object)
{
return LIST_HOLDING_YOUR_DATA.indexOf(object);
}
关于java - 使用 ComboBox 获取行的索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12865741/