java - 使用 ComboBox 获取行的索引值

标签 java swt jface tableviewer

我的表中的一行是一个组合框。他们可以选择"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/

相关文章:

Java SWT : GC will not draw simple rectangle on a canvas, 但会在图像上绘制

java - 按下 '.' 时按 Tab 键切换到 Eclipse JFace 对话框中的下一个字段

java - 设置 JButton 的位置永远不起作用?

java - 进程运行时在窗口中显示计时器

java - 这段代码如何编写Gson?

google-app-engine - 为什么我不能在本地主机上运行谷歌应用程序引擎项目?

java - 保存存储在 RCP 应用程序 View 部分中的数据

java - 使用 JFace 渲染表中重复元素的索引

java - 如何获取当前由鼠标光标突出显示的 Java SWT/JFace UI 组件的类名?

java - 如何使用Java配置在Tomcat 8中配置JNDI数据源: