我想将此程序的结果显示为树。我需要一只手来完成我的工作,并提前感谢你。
该程序适用于JDK 8和版本3 jena。这是我的代码:
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
jTextArea1.setText("");
Model model = ModelFactory.createDefaultModel();
InputStream in = FileManager.get().open("C:/Users/SAMSUNG/Desktop/WICM2/projet/opus_august2007.rdf");
Model m = model.read(in,null);
NodeIterator nit = m.listObjects();
List<String> lclass = new ArrayList<>();
Map<String,List<String>> map = new HashMap<>();
StmtIterator si = m.listStatements();
while(si.hasNext()){
Statement statement = si.next();
if(statement.getPredicate().getLocalName().equalsIgnoreCase("subClassOf")){
String mere = statement.getObject().toString();
String fils = statement.getSubject().getLocalName();
if(map.containsKey(mere)){
List<String> l = map.get(mere);
l.add(fils);
map.replace(mere, l);
}else{
List<String> l = new ArrayList<>();
l.add(fils);
map.put(mere, l);
}
}
if(statement.getObject().isResource() && statement.getPredicate().getLocalName().equalsIgnoreCase("type")){
if(!lclass.contains(statement.getSubject().getLocalName())){
lclass.add(statement.getSubject().getLocalName()) ;
}
}
}
jTextArea1.append("Les classes:\n");
for(String classe:lclass){
jTextArea1.append(classe+"\n");
}
jTextArea1.append("Les classe et les sous classes:\n");
for(String l : map.keySet()){
jTextArea1.append("Classe mere : "+l+"\n");
for(String s:map.get(l)){
jTextArea1.append(" Classe fils:"+s+"\n");
}
}
}
或者java gui中的一个简单的树程序就可以了。感谢