1 pièce(s) jointe(s)
Afficher une arborescence xml dans une interface graphique
Bonjour,
Je veux afficher un fichier xml dans un JscrollPane suite à une action sur le bouton Resultat, le problème qu'une fois je tape resultat, un jscrollpane apparaît mais dans une autre Jframe et pas au niveau du Jscrollpane que j'ai définit au dessous du bouton, voici une imprime écran de l'interface obtenu:
Voici le code que j'ai saisi:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
| private void jTabbedPane2MouseClicked(java.awt.event.MouseEvent evt) {
try {
File xmlFile = new File("nmapResult.xml");
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = builder.parse(xmlFile);
NodeList nodes = document.getChildNodes();
String site = "site";
DefaultMutableTreeNode root = new DefaultMutableTreeNode(site);
populateNodeFromDOM(root, nodes);
JFrame frame = new JFrame();
Container content = frame.getContentPane();
JTree tree = new JTree(root);
JScrollPane jScrollPane1= new JScrollPane(tree);
content.add(jScrollPane1);
frame.validate()
;
frame.pack();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
private void populateNodeFromDOM(DefaultMutableTreeNode parentNode, NodeList domNodes) {
for(int i = 0; i < domNodes.getLength(); i++) {
Node currNode = domNodes.item(i);
String nodeName = null;
if(currNode.getNodeName().startsWith("#")) {
nodeName = currNode.getNodeName() + ": " + currNode.getTextContent();
} else {
nodeName = currNode.getNodeName();
}
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(nodeName);
populateNodeFromDOM(newNode, currNode.getChildNodes());
parentNode.add(newNode);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(affichage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(affichage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(affichage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(affichage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
affichage f = new affichage();
f.setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JTextArea area2;
public javax.swing.JTextArea area3;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar jMenuBar1;
public javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
public javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTabbedPane jTabbedPane2;
// End of variables declaration
} |
Merci pour vos réponses.
Presenter un JTextArea pour chaque noeud du Jtree
Je souhaite maintenant présenter un JTextArea dans lequel s'affiche les informations relatives au noeud du JTree cliqué.
J'ai fait quelques recherches en ligne, mais je n'ai pas trouvé quelque chose d'utile. Quelqu'un pourrait me dire si c'est possible de réaliser? si oui, pourriez-vous s'il vous plaît envoyer un exemple de code simple?
Merci pour vos suggestions.