- 浏览: 847494 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
贝塔ZQ:
读取excel文件,插件pageoffice也可以实现。
POI读写Excel文件(转)- - -
springmvc-freemarker:
java开源项目源码实例下载
java开源项目源代码 -
xuning2516:
第一种方法是个死循环啊。。。
Java NIO 拷贝文件(使用compact) -
u012046856:
...
SessionFactory.getCurrentSession与openSession的区别 -
Season_Wang:
赞一个呀,挺实用的
java swing 中的FileDialog
package treeroot.reflect; import java.util.List; public interface Node { int CLASS=0x10000; int INTERFACE=0x01000; int CONSTRUCTOR=0x00100; int METHOD=0x00010; int FIELD=0x00001; void setChilds(List childs); boolean hasChild(); List getChilds(); String getName(); String getDetail(); int getType(); //in order to sort int getOrder(); } package treeroot.reflect; import treeroot.reflect.Node; import java.util.List; import java.lang.reflect.Method; public class MethodNode implements Node { private int order; private Method m; public MethodNode(Method m){ this(m,0); } public MethodNode(Method m,int order){ this.m=m; this.order=order; } /** * Method setChilds * * * @param parm1 * */ public void setChilds(List parm1) { throw new UnsupportedOperationException("MothodNode has no child!"); // TODO: Add your code here } /** * Method hasChild * * * @return * */ public boolean hasChild() { return false; // TODO: Add your code here } /** * Method getChilds * * * @return * */ public List getChilds() { throw new UnsupportedOperationException("MothodNode has no child!"); // TODO: Add your code here } /** * Method getName * * * @return * */ public String getName() { return m.getName()+ Helper.getParams(getDetail()); // TODO: Add your code here } /** * Method getDetail * * * @return * */ public String getDetail() { return m.toString(); // TODO: Add your code here } /** * Method getType * * * @return * */ public int getType() { return METHOD; // TODO: Add your code here } /** * Method getOrder * * * @return * */ public int getOrder() { return order; // TODO: Add your code here } public String toString(){ return getName(); } } package treeroot.reflect; import treeroot.reflect.Node; import java.util.List; import java.lang.reflect.*; public class InterfaceNode implements Node { private Class c; private int order; private List childs; public InterfaceNode(Class c){ this(c,0); } public InterfaceNode(Class c,int order){ if(!c.isInterface()){ throw new RuntimeException("InterfaceNode must accept a Interface!"); } this.c=c; this.order=order; } /** * Method setChilds * * * @param parm1 * */ public void setChilds(List parm1) { this.childs=parm1; // TODO: Add your code here } /** * Method hasChild * * * @return * */ public boolean hasChild() { return (childs!=null)&&(childs.size()>0); // TODO: Add your code here } /** * Method getChilds * * * @return * */ public List getChilds() { return childs; // TODO: Add your code here } /** * Method getName * * * @return * */ public String getName() { return c.getName(); // TODO: Add your code here } /** * Method toString * * * @return * */ public String toString() { return "<html><i>"+getName()+"</i></html>"; // TODO: Add your code here } /** * Method getDetail * * * @return * */ public String getDetail() { StringBuffer sb=new StringBuffer(Modifier.toString(c.getModifiers())); sb.append(c.getName()); Class[] inters=c.getInterfaces(); if(inters.length>0){ sb.append(" implements "); for(int i=0;i<inters.length;i++){ sb.append(inters[i].getName()); sb.append(','); } sb.setLength(sb.length()-1); } return sb.toString(); // TODO: Add your code here } /** * Method getType * * * @return * */ public int getType() { return INTERFACE; // TODO: Add your code here } public int getOrder(){ return order; } } package treeroot.reflect; import treeroot.reflect.Node; import java.util.List; import java.lang.reflect.Modifier; import java.lang.reflect.Field; public class FieldNode implements Node { private int order; private int mode; private Field field; public FieldNode(Field field){ this(field,0); } public FieldNode(Field field,int order){ this.field=field; this.order=order; } /** * Method setChilds * * * @param parm1 * */ public void setChilds(List parm1) { throw new UnsupportedOperationException("Field can hava Child Nodes!"); // TODO: Add your code here } /** * Method hasChild * * * @return * */ public boolean hasChild() { return false; // TODO: Add your code here } /** * Method getChilds * * * @return * */ public List getChilds() { //you should call the hasChild() to test. throw new UnsupportedOperationException("Field can hava Child Nodes!"); // TODO: Add your code here } /** * Method getName * * * @return * */ public String getName() { return field.getName(); // TODO: Add your code here } /** * Method getDetail * * * @return * */ public String getDetail() { return field.toString(); // TODO: Add your code here } /** * Method getType * * * @return * */ public int getType() { return FIELD; // TODO: Add your code here } public int getOrder(){ return order; } public String toString(){ return getName(); } } package treeroot.reflect; import treeroot.reflect.Node; import java.util.List; import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; public class ConstructorNode implements Node { private Constructor con; private int order; public ConstructorNode(Constructor con){ this(con,0); } public ConstructorNode(Constructor con,int order){ this.con=con; this.order=order; } /** * Method setChilds * * * @param parm1 * */ public void setChilds(List parm1) { throw new UnsupportedOperationException("ConstructorNode has no child!"); // TODO: Add your code here } /** * Method hasChild * * * @return * */ public boolean hasChild() { return false; // TODO: Add your code here } /** * Method getChilds * * * @return * */ public List getChilds() { throw new UnsupportedOperationException("ConstructorNode has no child!"); // TODO: Add your code here } /** * Method getName * * * @return * */ public String getName() { return con.getName()+ Helper.getParams(getDetail()); // TODO: Add your code here } /** * Method getDetail * * * @return * */ public String getDetail() { return con.toString(); // TODO: Add your code here } /** * Method getType * * * @return * */ public int getType() { return CONSTRUCTOR; // TODO: Add your code here } /** * Method getOrder * * * @return * */ public int getOrder() { return order; // TODO: Add your code here } public String toString(){ return getName(); } } package treeroot.reflect; import treeroot.reflect.Node; import java.util.List; import java.lang.reflect.*; public class ClassNode implements Node { private Class c; private int order; private List childs; public ClassNode(Class c){ this(c,0); } public ClassNode(Class c,int order){ if(c.isInterface()||c.isArray()||c.isPrimitive()){ throw new RuntimeException("ClassNode must accept a Class!"); } this.c=c; this.order=order; } /** * Method setChilds * * * @param parm1 * */ public void setChilds(List parm1) { this.childs=parm1; // TODO: Add your code here } /** * Method hasChild * * * @return * */ public boolean hasChild() { return (childs!=null)&&(childs.size()>0); // TODO: Add your code here } /** * Method getChilds * * * @return * */ public List getChilds() { return childs; // TODO: Add your code here } /** * Method getName * * * @return * */ public String getName() { return c.getName(); // TODO: Add your code here } /** * Method toString * * * @return * */ public String toString() { return "<html><b>"+getName()+"</b></html>";// TODO: Add your code here } /** * Method getDetail * * * @return * */ public String getDetail() { StringBuffer sb=new StringBuffer(Modifier.toString(c.getModifiers())); sb.append(" "); sb.append(c.getName()); Class superClass=c.getSuperclass(); if(superClass!=null){ sb.append(" extends "); sb.append(superClass.getName()); } Class[] inters=c.getInterfaces(); if(inters.length>0){ sb.append(" implements "); for(int i=0;i<inters.length;i++){ sb.append(inters[i].getName()); sb.append(','); } sb.setLength(sb.length()-1); } return sb.toString(); } /** * Method getType * * * @return * */ public int getType() { return CLASS; // TODO: Add your code here } public int getOrder(){ return order; } } package treeroot.reflect; class Helper { static String getParams(String s){ return s.substring(s.indexOf('('),s.indexOf(')')+1); } } package treeroot.reflect; import java.util.*; import java.lang.reflect.*; public class ClassMeta { public static Node getClassTree(Class c){ // Node root; if(c.isInterface()){ root=new InterfaceNode(c); } else{ root=new ClassNode(c); } List childs=new ArrayList(); //add super class as first node,if the class if Object.class,break recursion. //only Class has the superClass. Class superClass=c.getSuperclass(); if(superClass!=null) childs.add(getClassTree(superClass)); //add the inteferaces //Class or Interface must have the Interfaces Class[] inters= c.getInterfaces(); for(int i=0;i<inters.length;i++){ childs.add(getClassTree(inters[i])); } //add the constructors //Only Class have the Constructors. Constructor[] cons=c.getConstructors(); for(int i=0;i<cons.length;i++){ childs.add(new ConstructorNode(cons[i])); } //add the methods Method[] methods=c.getDeclaredMethods(); for(int i=0;i<methods.length;i++){ childs.add(new MethodNode(methods[i])); } //add the fields Field[] fields=c.getDeclaredFields(); for(int i=0;i<fields.length;i++){ childs.add(new FieldNode(fields[i])); } root.setChilds(childs); return root; } } //以下是图形界面了 package treeroot.classviewer; import treeroot.reflect.Node; import treeroot.reflect.ClassMeta; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.List; import java.util.*; import javax.swing.tree.*; import javax.swing.event.*; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.JScrollPane; public class ClassViewer extends JPanel { JTree tree; DefaultTreeModel model; JPanel detail=new JPanel(); JLabel lbl=new JLabel("the Detail Message"); private DefaultMutableTreeNode getRoot(Node node){ DefaultMutableTreeNode root=new DefaultMutableTreeNode(node); if(node.hasChild()){ List childs=node.getChilds(); for(int i=0;i<childs.size();i++){ root.add(getRoot((Node)childs.get(i))); } } return root; } public ClassViewer(){ DefaultMutableTreeNode root=getRoot(ClassMeta.getClassTree(Object.class)); model=new DefaultTreeModel(root); tree=new JTree(model); TreeSelectionModel selectModel =new DefaultTreeSelectionModel(); selectModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setSelectionModel(selectModel); tree.addTreeSelectionListener(new TreeSelectionListener(){ public void valueChanged(TreeSelectionEvent e){ DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); if(node!=null){ Node n=(Node)node.getUserObject(); lbl.setText(n.getDetail()); } } } ); this.setLayout(new BorderLayout()); this.add(new JScrollPane(tree),BorderLayout.CENTER); detail.add(lbl); this.add(detail,BorderLayout.SOUTH); } void setTree(Node treeRoot){ DefaultMutableTreeNode root=getRoot(treeRoot); model=new DefaultTreeModel(root); tree.setModel(model); this.updateUI(); } } package treeroot.classviewer; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.JOptionPane; import treeroot.reflect.*; import javax.swing.tree.*; public class MainFrame extends JFrame{ private JTextField txtClass=new JTextField("java.lang.Object",20); private JButton btnClass=new JButton("confirm"); private JPanel topPanel=new JPanel(); ClassViewer tree=new ClassViewer(); public MainFrame(){ this.setTitle("Class Viewer"); Toolkit kit=Toolkit.getDefaultToolkit(); Dimension d=kit.getScreenSize(); int width=d.width; int height=d.height; this.setLocation((width-WIDTH)/2,(height-HEIGHT)/2); this.setSize(WIDTH,HEIGHT); //this.setResizable(false); topPanel.add(txtClass); topPanel.add(btnClass); btnClass.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ Class c=null; try{ String cls=txtClass.getText().trim(); c=Class.forName(cls); } catch(ClassNotFoundException ex){ JOptionPane.showMessageDialog(null,"can find the class!"); return; } Node root=ClassMeta.getClassTree(c); tree.setTree(root); } } ); this.getContentPane().add(topPanel,BorderLayout.NORTH); this.getContentPane().add(tree,BorderLayout.CENTER); } public static void main(String[] args){ MainFrame main=new MainFrame(); //main.pack(); main.show(); } private static int WIDTH=800; private static int HEIGHT=600; }
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/treeroot/archive/2004/12/29/232826.aspx
相关推荐
Java实现内置浏览器是一种技术实践,它允许开发者在Java应用程序中集成一个Web浏览器组件,使得用户可以在应用程序内部浏览网页,提供类似桌面应用的体验。这种方式通常使用JavaFX或Swing库来构建用户界面,并通过...
总的来说,"Java浏览器"项目不仅展示了Java在创建复杂应用程序时的能力,还为Java开发者提供了一个实践多线程、网络编程、UI设计和安全策略的绝佳案例。通过深入研究和改进这样的项目,Java开发者可以提升自己的技能...
用java模拟访问浏览网站的代码,可以输出各种网页属性,以及html源代码
【基于Java的浏览器设计与实现】是一门课程设计,旨在让学生通过使用Java语言在Eclipse环境中构建一个Web浏览器,以实现基本的浏览功能,并在Windows操作系统上运行。这个设计涵盖了图形界面设计和底层功能实现两个...
java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java图片浏览器java...
标签"java-cef"、"Java浏览器"和"java谷歌"暗示了这个项目是关于Java环境下利用CEF实现的浏览器功能,特别强调了与谷歌技术的结合。因此,开发者应当熟悉Java编程,了解CEF框架,以及谷歌的Web技术标准。在实践中,...
在Java编程领域,开发一款网页浏览器是一项挑战性的任务,它涉及到网络通信、用户界面设计、渲染引擎等多个核心组件。下面将详细阐述这个项目所涵盖的关键知识点。 首先,我们需要理解Java的基础,包括类、对象、...
标题中的“超漂亮的纯JAVA浏览器”指的是一个基于Java语言开发的网页浏览应用,它具有出色的用户界面设计,提供了良好的视觉体验。这样的浏览器通常利用Java的跨平台特性,可以在多种操作系统上运行,包括Windows、...
标题中的“JCB-使用WTL用C++编写的Java类浏览器”指的是一个软件项目,该项目采用Microsoft的Windows Template Library (WTL)框架,用C++编程语言实现了对Java类的浏览功能。WTL是一个轻量级的库,主要用于开发...
java简易自制浏览器 java简易自制浏览器 java简易自制浏览器 java简易自制浏览器 java简易自制浏览器 java简易自制浏览器
Java 图片浏览器是一种基于Java编程语言开发的应用程序,主要用于查看和浏览存储在计算机中的图片文件。这个应用提供了基本的图片浏览功能,如打开指定目录、上下翻页以及自动播放和停止播放图片。以下是对这些核心...
Java嵌入浏览器技术是将一个完整的网页浏览功能集成到Java应用程序中的方法,使得开发者可以在Java应用内部展示网页、实现Web应用交互。JxBrowser是一款专为此目的设计的库,它提供了一个API,允许Java开发者轻松地...
Java 图片浏览器 源码,实现简单的图片浏览的功能,代码简洁,容易懂的。
Java简单浏览器源代码是基于Java Swing库和Socket编程技术实现的一款基础浏览应用,它为开发者提供了一个学习和理解网络浏览器工作原理的实例。这个项目主要包含以下几个关键知识点: 1. **Java Swing**: Java ...
这个压缩包文件“Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)”显然提供了一个实现这一功能的示例,主要涉及到的技术是DJnative-SWT和SWT。 DJnative-SWT 是一个开源项目,它的目标是将Java和...
5. **安全机制**:考虑到网络安全,Java浏览器需要有安全策略来防止恶意代码。Java内置了沙箱机制,限制了未经许可的系统访问,同时还可以利用SSL/TLS协议确保数据传输的安全性。 6. **缓存机制**:为了提高加载...
java 内嵌浏览器 DJNativeSwing,可实现内嵌浏览器,提高用户体验。
2. JavaScript引擎:Java浏览器通常会包含一个JavaScript引擎,如OpenJDK的HotSpot或Mozilla的Rhino,用于执行网页中的JavaScript代码。JavaScript引擎使浏览器能够与用户交互、处理动态内容和执行服务器请求。 3. ...
在Java编程中,获取浏览器的代理设置是一项重要的任务,特别是在开发网络应用或者需要模拟用户网络环境的场景下。本文将详细讲解如何利用Java来获取浏览器的代理设置,并结合提供的文件`registry.jar`和`ICE_...
本项目涉及的是使用Java编写的一个简单的浏览器和服务器,这对于学习Java网络编程的初学者来说是一个很好的实践案例。 首先,我们要理解浏览器和服务器的基本工作原理。浏览器是客户端应用程序,用于向服务器发送...