Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package problema1;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import javax.swing.JButton;
- import javax.swing.JFileChooser;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTree;
- import javax.swing.Timer;
- import javax.swing.border.EmptyBorder;
- import javax.swing.filechooser.FileFilter;
- import javax.swing.filechooser.FileNameExtensionFilter;
- import javax.swing.tree.DefaultMutableTreeNode;
- import javax.swing.tree.DefaultTreeModel;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- public class Procesare_XML extends JFrame {
- private static final long serialVersionUID = 1L;
- private JPanel contentPane;
- private JLabel lbltime;
- private static JTree tree;
- private SimpleDateFormat format1 = new SimpleDateFormat("HH:mm:ss");
- public Procesare_XML() {
- setResizable(false);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setBounds(100, 100, 489, 326);
- contentPane = new JPanel();
- contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
- setContentPane(contentPane);
- contentPane.setLayout(null);
- JButton btnOpenXML = new JButton("Open XML");
- btnOpenXML.setBounds(10, 28, 109, 23);
- btnOpenXML.addActionListener(new BtnOpenFile());
- contentPane.add(btnOpenXML);
- Date dt = Calendar.getInstance().getTime();
- lbltime = new JLabel("");
- lbltime.setBounds(366, 32, 72, 14);
- lbltime.setText(format1.format(dt));
- contentPane.add(lbltime);
- JScrollPane scrollPane = new JScrollPane();
- scrollPane.setBounds(10, 85, 453, 202);
- contentPane.add(scrollPane);
- tree = new JTree();
- tree.setModel(new DefaultTreeModel(
- new DefaultMutableTreeNode(null) {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- {
- add(new DefaultMutableTreeNode(""));
- }
- }
- ));
- scrollPane.setViewportView(tree);
- Timer timer = new Timer(1000, new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- lbltime.setText(format1.format(Calendar.getInstance().getTime()));
- }
- });
- timer.setInitialDelay(0);
- timer.start();
- }
- public static class BtnOpenFile implements ActionListener {
- @Override
- public void actionPerformed(ActionEvent e) {
- JFileChooser openFile = new JFileChooser();
- openFile.setCurrentDirectory(new File("."));
- FileFilter filter = new FileNameExtensionFilter("XML Documents (*.xml)", "xml");
- openFile.setFileFilter(filter);
- if (openFile.showDialog(openFile, null) == JFileChooser.APPROVE_OPTION) {
- try {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document document = (Document) builder.parse(openFile.getSelectedFile());
- Element radacinaArboreDom = document.getDocumentElement();
- DefaultMutableTreeNode defaultMutableTreeNode = new DefaultMutableTreeNode(
- radacinaArboreDom.getNodeName());
- DefaultTreeModel defaultTreeModel = new DefaultTreeModel(defaultMutableTreeNode);
- tree.setModel(defaultTreeModel);
- Procesare_XML.rec(radacinaArboreDom, defaultMutableTreeNode);
- } catch (Exception ex) {
- JOptionPane.showMessageDialog(openFile, "Nu s-a ales nici un fiser");
- }
- }
- }
- }
- public static void rec(Node radacina, DefaultMutableTreeNode radacinaTree) {
- NodeList nodeList;
- DefaultMutableTreeNode defaultMutableTreeNode = null;
- if (radacina.hasChildNodes()) {
- nodeList = radacina.getChildNodes();
- for (int i = 0; i < nodeList.getLength(); i++) {
- radacina = nodeList.item(i);
- if (radacina.getNodeType() == Node.ELEMENT_NODE) {
- defaultMutableTreeNode = new DefaultMutableTreeNode(radacina.getNodeName());
- radacinaTree.add(defaultMutableTreeNode);
- } else if (radacina.getNodeType() == Node.TEXT_NODE && !radacina.getNodeValue().isBlank()) {
- defaultMutableTreeNode = new DefaultMutableTreeNode(radacina.getNodeValue());
- radacinaTree.add(defaultMutableTreeNode);
- System.out.println(radacina.getNodeValue().trim());
- }
- rec(nodeList.item(i), defaultMutableTreeNode);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement