import javax.swing.*;import java.util.*;import java.lang.*;import javax.swing.JPanel;import javax.swing.event.TreeSelectionListener;import javax.swing.event.TreeSelectionEvent;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.TreeSelectionModel;import java.io.*;import java.awt.*;/* Created by IntelliJ IDEA. User: roxana Date: Jan 18, 2008 Time: 9:48:58 PM To change this template use File | Settings | File Templates. *//** Ce mai face problema? 1. Program pentru afisarea unui arbore (obiect JTree) cu fisiereledintr-un director si din toate subdirectoarele sale. Numele directoruluise preia dintr-un camp text. La modificarea campului text se modifica sicontinutul afisat al arborelui.Initial este afisat numele si continutul directorului curent *//* Questions? 1. Cum fac sa apara initial doar directorul curent? 2. Cum fac sa scriu textul comentat cu culoare rosie (spre ex)? 3. Cum minimizezi separat 3 comentarii puse unul dupa altul? 4. Cum faci ca atunci cand minimizezi un comentariu sa se vada "titlul" comentariului? 5. Cum poti avea un comentariu mare in care sa ai 3 subcomentarii pe care sa le divizezi? *//* 2. Sa se adauge programului anterior posibilitatea de selectie a unui noddin arbore, cu afisare valoare nod selectat intr-un al doilea camp text. Pentru a obtine nodul selectat se pot folosi mai multe metode:- metoda getLastSelectedPathComponent din clasa JTree (cu rezultat Object)- metoda getPath din clasa TreeSelectionEvent (cu rezultat TreePath ) si- metoda "getLastPathComponent" din "TreePath". Clasa "TreePath" corespunde unui vector Object[]*/public class Copac extends JFrame implements TreeSelectionListener { private JTree tree; private JTextField jtf; public Copac(){ JPanel jp= (JPanel) this.getContentPane(); File folder= new File("/home/roxana/Desktop/materii an 2/JAVA"); DefaultMutableTreeNode top= new DefaultMutableTreeNode (folder.getName()); createNodes(top,folder); tree = new JTree(top); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.addSelectionListener(this); JScrollPane treeView=new JScrollPane(tree); jtf = new JTextField("",20); jp.setLayout(new FlowLayout()); jp.add(treeView); jp.add(jtf); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); this.setSize(300,400); this.setLocationRelativeTo(null); } public void valueChanged(TreeSelectionEvent e){ DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); if (node == null) return; jtf.setText(node.toString()); } private void createNodes(DefaultMutableTreeNode top,File folder){ if (!folder.isDirectory()) return; String[] file_names = folder.list(); File[] files = folder.listFiles(); for (int i=0;i<file_names.length;i++){ DefaultMutableTreeNode nod= new DefaultMutableTreeNode(file_names[i]); top.add(nod); createNodes(nod,files[i]); } } public static void main(String argv[]){ Copac c= new Copac(); }}