我表中的一行是 ComboBox。他们可以在“是”、“否”、“两者”之间进行选择。如果他们选择“两者”,则必须对正在构建表的数据数组进行一些修改并刷新表。在上一篇文章中建议在 Both 的 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 类中获取索引吗?