Advertisement
Alx09

Untitled

Jan 10th, 2022
819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.48 KB | None | 0 0
  1. package problema1;
  2.  
  3.  
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.io.File;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Calendar;
  9. import java.util.Date;
  10.  
  11. import javax.swing.JButton;
  12. import javax.swing.JFileChooser;
  13. import javax.swing.JFrame;
  14. import javax.swing.JLabel;
  15. import javax.swing.JOptionPane;
  16. import javax.swing.JPanel;
  17. import javax.swing.JScrollPane;
  18. import javax.swing.JTree;
  19. import javax.swing.Timer;
  20. import javax.swing.border.EmptyBorder;
  21. import javax.swing.filechooser.FileFilter;
  22. import javax.swing.filechooser.FileNameExtensionFilter;
  23. import javax.swing.tree.DefaultMutableTreeNode;
  24. import javax.swing.tree.DefaultTreeModel;
  25. import javax.xml.parsers.DocumentBuilder;
  26. import javax.xml.parsers.DocumentBuilderFactory;
  27.  
  28. import org.w3c.dom.Document;
  29. import org.w3c.dom.Element;
  30. import org.w3c.dom.Node;
  31. import org.w3c.dom.NodeList;
  32.  
  33. public class Procesare_XML extends JFrame {
  34.  
  35.     private static final long serialVersionUID = 1L;
  36.     private JPanel contentPane;
  37.     private JLabel lbltime;
  38.     private static JTree tree;
  39.     private SimpleDateFormat format1 = new SimpleDateFormat("HH:mm:ss");
  40.  
  41.     public Procesare_XML() {
  42.         setResizable(false);
  43.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  44.         setBounds(100, 100, 489, 326);
  45.         contentPane = new JPanel();
  46.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  47.         setContentPane(contentPane);
  48.         contentPane.setLayout(null);
  49.  
  50.         JButton btnOpenXML = new JButton("Open XML");
  51.         btnOpenXML.setBounds(10, 28, 109, 23);
  52.         btnOpenXML.addActionListener(new BtnOpenFile());
  53.         contentPane.add(btnOpenXML);
  54.         Date dt = Calendar.getInstance().getTime();
  55.  
  56.         lbltime = new JLabel("");
  57.         lbltime.setBounds(366, 32, 72, 14);
  58.         lbltime.setText(format1.format(dt));
  59.         contentPane.add(lbltime);
  60.  
  61.         JScrollPane scrollPane = new JScrollPane();
  62.         scrollPane.setBounds(10, 85, 453, 202);
  63.         contentPane.add(scrollPane);
  64.  
  65.         tree = new JTree();
  66.         tree.setModel(new DefaultTreeModel(
  67.             new DefaultMutableTreeNode(null) {
  68.                 /**
  69.                  *
  70.                  */
  71.                 private static final long serialVersionUID = 1L;
  72.  
  73.                 {
  74.                     add(new DefaultMutableTreeNode(""));
  75.                 }
  76.             }
  77.         ));
  78.         scrollPane.setViewportView(tree);
  79.         Timer timer = new Timer(1000, new ActionListener() {
  80.             @Override
  81.             public void actionPerformed(ActionEvent e) {
  82.                 lbltime.setText(format1.format(Calendar.getInstance().getTime()));
  83.             }
  84.         });
  85.         timer.setInitialDelay(0);
  86.         timer.start();
  87.    
  88.  
  89.     }
  90.  
  91.    
  92.  
  93.     public static class BtnOpenFile implements ActionListener {
  94.  
  95.         @Override
  96.         public void actionPerformed(ActionEvent e) {
  97.             JFileChooser openFile = new JFileChooser();
  98.             openFile.setCurrentDirectory(new File("."));
  99.             FileFilter filter = new FileNameExtensionFilter("XML Documents (*.xml)", "xml");
  100.             openFile.setFileFilter(filter);
  101.             if (openFile.showDialog(openFile, null) == JFileChooser.APPROVE_OPTION) {
  102.                 try {
  103.                     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  104.                     DocumentBuilder builder = factory.newDocumentBuilder();
  105.                     Document document = (Document) builder.parse(openFile.getSelectedFile());
  106.                     Element radacinaArboreDom = document.getDocumentElement();
  107.                     DefaultMutableTreeNode defaultMutableTreeNode = new DefaultMutableTreeNode(
  108.                             radacinaArboreDom.getNodeName());
  109.                     DefaultTreeModel defaultTreeModel = new DefaultTreeModel(defaultMutableTreeNode);
  110.                     tree.setModel(defaultTreeModel);
  111.                     Procesare_XML.rec(radacinaArboreDom, defaultMutableTreeNode);
  112.                 } catch (Exception ex) {
  113.                     JOptionPane.showMessageDialog(openFile, "Nu s-a ales nici un fiser");
  114.                 }
  115.             }
  116.         }
  117.     }
  118.  
  119.         public static void rec(Node radacina, DefaultMutableTreeNode radacinaTree) {
  120.             NodeList nodeList;
  121.             DefaultMutableTreeNode defaultMutableTreeNode = null;
  122.             if (radacina.hasChildNodes()) {
  123.                 nodeList = radacina.getChildNodes();
  124.                 for (int i = 0; i < nodeList.getLength(); i++) {
  125.                     radacina = nodeList.item(i);
  126.                     if (radacina.getNodeType() == Node.ELEMENT_NODE) {
  127.                         defaultMutableTreeNode = new DefaultMutableTreeNode(radacina.getNodeName());
  128.                         radacinaTree.add(defaultMutableTreeNode);
  129.                        
  130.                     } else if (radacina.getNodeType() == Node.TEXT_NODE && !radacina.getNodeValue().isBlank()) {
  131.                         defaultMutableTreeNode = new DefaultMutableTreeNode(radacina.getNodeValue());
  132.                         radacinaTree.add(defaultMutableTreeNode);
  133.                     System.out.println(radacina.getNodeValue().trim());
  134.                 }
  135.                    
  136.                     rec(nodeList.item(i), defaultMutableTreeNode);
  137.                 }
  138.             }
  139.         }
  140.  
  141.  
  142. }
  143.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement