服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

[java100例]076、在applet中使用swing

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);
  }
 }


}

扫描关注微信公众号