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

时间: 2024-09-20 06:13:50

[JAVA100例]076、在Applet中使用Swing的相关文章

JAVA100例专题

[JAVA100例]041.执行系统命令 [JAVA100例]078.播放声音 [JAVA100例]077.应用JAR包 [JAVA100例]076.在Applet中使用Swing [JAVA100例]075.检测键盘事件 [JAVA100例]074.检测鼠标事件 [JAVA100例]073.传递参数 [JAVA100例]072.欢迎进入Applet世界 [JAVA100例]071.使用JDOM操作XML [JAVA100例]070.使用JDOM解析XML [JAVA100例]069.使用SAX

applet-java Applet中param参数存放的值可以放加密过的密码么

问题描述 java Applet中param参数存放的值可以放加密过的密码么 java Applet中param参数存放的值可以放加密过的密码么?这些param值是存在Cookie中么? 解决方案 当然可以 只要服务器端能够正确解析解密还原数据

[JAVA100例]041、执行系统命令

import java.io.*; /** * <p>Title: 运行系统命令</p> * <p>Description:运行一个系统的命令,演示使用Runtime类.</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: CmdExec.java</p> * @version 1.0 */ public class CmdExec { /** *

[JAVA100例]078、播放声音

import java.applet.*; import java.awt.event.*; import java.awt.*; /** * <p>Title: Applet播放声音文件</p> * <p>Description: 使用AudioClip类加载声音文件,并当鼠标点击后开始播放</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: PlayAud

在Applet中显示图象的方法

一.在 Applet 中显示图象需要引入以下包,并调用ImageObserver接口 import java.awt.image.*; import java.awt.image.ImageObserver; import java.net.URL; public class MyApplet extends Applet implements ImageObserver { ... 二.定义图象路径 URL imgURL = getDocumentBase(): 将路径设为和你的html文件在

急急!为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊

问题描述 为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊SAXBuildersb=newSAXBuilder();Documentdoc=sb.build("E:/sample.xml");在main()程序中就不会有这样的问题,是不是安全问题请各路大侠帮忙了,谢啦!!!

小议如何在 Applet 中显示图象

小议如何在 Applet 中显示图象***************************************************************                                        **** 作者:刘湛        一天进步一小步             **** 日期:2000-12-19        ==============              ** ** jeru@163.net        充实我的每一天    

[JAVA100例]072、欢迎进入Applet世界

import java.awt.*; import java.applet.Applet; /** * <p>Title: 简单的Applet</p> * <p>Description: 继续Applet类,实现Applet方法.在屏幕说输出一句问候语.</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: Hello_applet.java</p>

在Applet中引用jar中的资源文件的方法

如果想要做一个比较漂亮的Applet让人家使用,一定会加上很多资源,比如图片或者声音文件什么的. sun提供了一个有用的工具,jar.这个工具可以把这些资源文件合在一个文件里,避免频繁的http request, 而且下载的jar文件可以被缓存,很爽吧. 但是如何正确引用jar中的资源呢? 比如我们打算显示一个图片按钮,图片相对路径为./img/logo.gif,你可以自己随便找一个gif图片. 让我们来看看我们想当然的做法. import java.awt.*; import java.awt