java - API Jena - 我的界面的按钮 "Next"无法正常工作

标签 java awt rdf jena owl

我正在使用耶拿。我创建了一个接口(interface),允许在 rdf 文件中添加、修改和删除实例。我对“下一步”按钮有疑问。它有效,但并不完美。我希望它在到达最后一个实例时返回到第一个实例。但它不会这样做,当它到达最后一个实例时,每次按下“下一步”按钮时,它都会重复最后一个实例。我该如何解决这个问题?

这是我的下一个按钮的片段代码:

//Button Next
class ActionSuivant implements ActionListener
{
    public void actionPerformed(ActionEvent evt)
    {

        ++indice; 

        ExtendedIterator instances=onto.personne.listInstances();

        Individual instance = null;
                for(p = 0; p < indice && instances.hasNext(); p++)
                {
                   instance = (Individual) instances.next();

                  }    
                tabTF[0].setText(instance.getPropertyValue(onto.aPourPrenom).toString());
                tabTF[1].setText(instance.getPropertyValue(onto.aPourNom).toString());
                tabTF[2].setText(instance.getPropertyValue(onto.aDateNaiss).toString());
                tabTF[3].setText(instance.getPropertyValue(onto.aGenre).toString());

    }
} 

最佳答案

在 for 循环结束时,如果 p 仍然小于索引,则意味着您已到达列表的末尾。将索引重置为 1,并返回迭代器的第一个元素。

public void actionPerformed(ActionEvent evt)
{
    ++indice;
    ExtendedIterator instances = onto.personne.listInstances();
    Individual instance = null;
    Individual firstInstance = null;
    for (p = 0; p < indice && instances.hasNext(); p++) {
        instance = (Individual) instances.next();
        if (firstInstance == null) {
            firstInstance = instance;
        }
    }    
    if (p < indice) {
        indice = 1;
        instance = firstInstance;
    }
    tabTF[0].setText(instance.getPropertyValue(onto.aPourPrenom).toString());
    tabTF[1].setText(instance.getPropertyValue(onto.aPourNom).toString());
    tabTF[2].setText(instance.getPropertyValue(onto.aDateNaiss).toString());
    tabTF[3].setText(instance.getPropertyValue(onto.aGenre).toString());
}

在获取实例的属性之前,您还应该确保该实例不为 null。

如果您有一个列表而不是迭代器,那就更容易了:您可以简单地通过索引访问元素。

关于java - API Jena - 我的界面的按钮 "Next"无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7056027/

相关文章:

java - Jframe图像+文本字段

java - 是否可以检测窗口遮挡

java - 在java awt或swing中,如何安排键盘输入到鼠标所在的位置?

文本中实体引用的 rdf 表示

Sparql-实体和实例的数量?

java - 将 Docker Secrets 与 Spotify Docker 客户端一起使用

java - 如何访问从父类(super class)传递下来的子类属性?

java - 手动安装时无法在 ubuntu 14.04 中设置 JAVA_HOME 变量

java - 如何获取代表具有特定 [property,object] 对的对象的 RDF 资源?

java - 如何通过 Java 中的属性检索 Neo4 关系?