[[browse]]
 
package browse;
 
import java.awt.Component;
import java.awt.Container;
import javax.swing.*;
import javax.swing.tree.*;
import java.lang.reflect.*;
 
public class BrowseWindow extends javax.swing.JFrame {
 
    DefaultMutableTreeNode root;
    DefaultTreeModel model;
 
    public BrowseWindow() {
        initComponents();
 
        root = new DefaultMutableTreeNode ("root");
        scan (root, this);
        model = new DefaultTreeModel (root);
        jTree1.setModel (model);
    }
 
    public void scan (DefaultMutableTreeNode branch, 
                      java.awt.Component c)
    {
        Class cls = c.getClass();
        String s = cls.getName();
        DefaultMutableTreeNode node = 
                new DefaultMutableTreeNode (s);
        branch.add (node);
        methods (node, c);
 
        if (c instanceof Container)
        {
            Container d = (Container) c;
            int n = d.getComponentCount();
            for (int i = 0; i < n; i++)
                scan (node, d.getComponent(i));
        }
 
    }
    public void methods (DefaultMutableTreeNode branch, 
                         Object obj)
    {
       DefaultMutableTreeNode temp = 
          new DefaultMutableTreeNode ("methods");
        branch.add (temp);
        branch = temp;
 
        Class cls = obj.getClass();
        Method [] list = cls.getMethods();
        for (Method m : list)
        {
           String s = m.getName(); //  + " : " + m.toString();
 
           if (m.getParameterCount() == 0 &&
               m.getName().startsWith("get"))
               try 
               {
                    Object answer = m.invoke (obj);
                    s = s + " : " + answer;
               }
               catch (Exception e)
               {
               }
 
           if (cls.getName().equals ("javax.swing.JButton") &&
               m.getName().equals ("setText") &&
               m.getParameterCount() == 1)
           {
               s = " * " + s;
               try 
               {
                    Object [] params =
                            new Object [] { "Ahoj" };
                    Object answer = m.invoke (obj, params);
                    s = s + " : " + answer;
               }
               catch (Exception e)
               {
               }
           }
 
           DefaultMutableTreeNode node = 
                   new DefaultMutableTreeNode (s);
           branch.add (node);
        }
    }
 
 
}
 
browse.txt · Last modified: 2015/03/13 12:31 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki