快速业务通道

[JAVA100例]076、在Applet中使用Swing - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

[JAVA100例]076、在Applet中使用Swing

时间:2011-01-09

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; import java.io.*; import java.net.*; import java.util.*; import java.applet.*; /** * <p>Title: Applet中使用SWING</p> * <p>Description: 使用SWING的JApplet实现树功能。</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: PageTree.java</p> * @version 1.0 */ public class PageTree extends JApplet implements TreeSelectionListener { DefaultMutableTreeNode[] nodeAt = new DefaultMutableTreeNode[256]; String target = null; Hashtable links = new Hashtable(); AppletContext context; public void init() {  //获取Applet的内容  context = getAppletContext();  //定义根节点  DefaultMutableTreeNode root = null;  getContentPane().setLayout(new BorderLayout());  //获取参数。定义的数据配置文件。  String s = getParameter("file");  if (s != null) {   try {   //使用URL方式打开数据文件,实现在网络上使用。   URL url = new URL(getDocumentBase(), s);   BufferedReader br = new BufferedReader(    new InputStreamReader(url.openStream(), "JISAutoDetect"));   //读取第一行数据,如果为空则不执行   String line = br.readLine();   if (line == null) return;   root = new DefaultMutableTreeNode(line);   nodeAt[0] = root;   int level = 0;   while ((line = br.readLine()) != null) {    //使用“|”分开数据    StringTokenizer st = new StringTokenizer(line, "|");    String token = st.nextToken();    int n = countSpaces(token);    //添加节点名称    DefaultMutableTreeNode node = new DefaultMutableTreeNode(token.trim());    //计算节点级数    for (int i = level + 1; i < n; i++) {    DefaultMutableTreeNode dummy = new DefaultMutableTreeNode("");    nodeAt[i].add(dummy);    nodeAt[i+1] = dummy;    }    level = n;    nodeAt[n].add(node);    nodeAt[n+1] = node;    //对“|”符号后的数据进行处理    if (st.hasMoreTokens()) {    token = st.nextToken();    try {     url = new URL(token.trim());     links.put(node, url);    } catch (MalformedURLException ex) {     ex.printStackTrace();    }    }   }   } catch (MalformedURLException e) {   e.printStackTrace();   } catch (IOException e) {   e.printStackTrace();   }   s = getParameter("target");   if (s != null) target = s.trim();   JTree tree = new JTree(root);   //添加树的选择监听   tree.addTreeSelectionListener(this);   JScrollPane jsp = new JScrollPane(tree);   getContentPane().add(jsp, BorderLayout.CENTER);  } } /** *<br>方法说明:计算空格数 *<br>输入参数: *<br>返回类型: */ private int countSpaces(String s) {  int n = 0;  while (s.charAt(n) == ´ ´) {   n++;  }  return n; } /** *<br>方法说明:树选择监听实现方法 *<br>输入参数:TreeSelectionEvent e 选择树节点事件 *<br>返回类型: */ public void valueChanged(TreeSelectionEvent e) {  TreePath path = e.getPath();  Object o = path.getLastPathComponent();  URL url = (URL)links.get(o);  if (url != null) {   System.out.println(links.get(o));   //打开连接,通知浏览器加载网页(使用浏览器打开Applet的情况下)   context.showDocument(url);  } } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号