Java API Jena-按钮“;“下一步”;我的界面的一部分工作不正常
我在用杰娜。我创建了一个接口,允许在rdf文件中添加、修改和删除实例。我对“下一步”按钮有问题。它可以工作,但并不完美。我希望它在到达最后一个实例时返回到第一个实例。但它不会这样做,当它到达最后一个实例时,它会在每次按下“下一步”按钮时重复最后一个实例。我怎样才能解决这个问题 下面是按钮“下一步”的片段代码:Java API Jena-按钮“;“下一步”;我的界面的一部分工作不正常,java,awt,rdf,jena,owl,Java,Awt,Rdf,Jena,Owl,我在用杰娜。我创建了一个接口,允许在rdf文件中添加、修改和删除实例。我对“下一步”按钮有问题。它可以工作,但并不完美。我希望它在到达最后一个实例时返回到第一个实例。但它不会这样做,当它到达最后一个实例时,它会在每次按下“下一步”按钮时重复最后一个实例。我怎样才能解决这个问题 下面是按钮“下一步”的片段代码: //Button Next class ActionSuivant implements ActionListener { public void actionPerformed(
//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());
}
}
//下一步按钮
类ActionSuivant实现ActionListener
{
已执行的公共无效操作(操作事件evt)
{
++印度;
ExtendedIterator instances=on.personne.listInstances();
单个实例=null;
对于(p=0;p
在for循环的末尾,如果p仍然小于indice,则表示您已到达列表的末尾。将indice重置为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());
}
public void actionPerformed(ActionEvent evt)
{
++印度;
ExtendedIterator instances=on.personne.listInstances();
单个实例=null;
单个firstInstance=null;
对于(p=0;p
您还应该确保实例在获取其属性之前不为null
如果您有一个列表而不是迭代器,那么会更容易:您可以通过索引访问元素。在for循环的末尾,如果p仍然小于indice,则表示您已经到达了列表的末尾。将indice重置为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());
}
public void actionPerformed(ActionEvent evt)
{
++印度;
ExtendedIterator instances=on.personne.listInstances();
单个实例=null;
单个firstInstance=null;
对于(p=0;p
您还应该确保实例在获取其属性之前不为null
如果您有一个列表而不是迭代器,那么就更容易了:您可以通过索引访问元素。非常感谢您的帮助。对于“Previous”按钮,我想方法是类似的?是的。但是如果前一个按钮位于列表的开头,并且指向最后一个元素,这意味着该列表相当短,您当然应该遍历所有元素并将它们存储在ArrayList中。这样,您的按钮就可以通过索引而不是每次迭代来访问ArrayList。非常感谢您的帮助。对于“Previous”按钮,我想方法是类似的?是的。但是如果前一个按钮位于列表的开头,并且指向最后一个元素,这意味着该列表相当短,您当然应该遍历所有元素并将它们存储在ArrayList中。这样,您的按钮就可以通过索引而不是每次迭代来访问ArrayList。