gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:38:29 25 4
gpt4 key购买 nike

我正在使用耶拿。我创建了一个接口(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com