[[class]]
 
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.tree.*;
import java.lang.reflect.*;
 
 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // showInfo (jButton2);
 
        // import javax.swing.tree.*;
 
        Object obj = jButton2;
        // import java.awt.*;
        if (obj instanceof Component)
        {
           Component c = (Component) obj;
           while (c.getParent() != null)
               c = c.getParent();
 
           DefaultMutableTreeNode root = showBranch (c);
           DefaultTreeModel m = new DefaultTreeModel (root);
           jTree1.setModel (m);
        }
    }                                        
 
    private DefaultMutableTreeNode showBranch (Component c)  {
      DefaultMutableTreeNode node = 
              new DefaultMutableTreeNode (c);
       if (c instanceof Container)
       {
           Container d = (Container) c;
           Component [] items = d.getComponents();
           for (Component t : items)
               node.add (showBranch (t));
       }
       return node;        
    }
 
    private void showInfo (Object obj)  {
        // import javax.swing.table.*;
        DefaultTableModel m = 
            (DefaultTableModel) jTable1.getModel ();
        while (m.getRowCount() > 0)
            m.removeRow (0);
 
        Class cls = obj.getClass();
        this.setTitle(cls.getName ());
        jTextField1.setText (cls.getName ());
 
        // import java.lang.reflect.*;
        Method [] methods = cls.getMethods ();
        // for (int i = 0; i < methods.length; i++)
        //    Method f = methods [i];
 
        for (Method f : methods)
        {
            if (f.getParameterCount() == 0)
            {
               Class r = f.getReturnType();
               if (r != void.class)
               {
                  Object [] params = { };
                  Object v;
                  try 
                  {
                      v = f.invoke (obj, params);
                  } 
                  catch (Exception ex) 
                  {
                      v = "" + ex;
                  } 
                  String [] s = 
                    { f.getName (), f.toString () , 
                      r.getName (), ""+v};
                  m.addRow (s);
               }
            }
        }
 
        try 
        {
           Class [] args = { boolean.class };
           Method f = cls.getMethod ("setVisible", args);
           Object [] params = { false };
           f.invoke (obj, params);
        } 
        catch (Exception ex) 
        {
        } 
 
    }
 
class.txt · Last modified: 2016/11/24 17:10 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