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

2016-02-19 15:33 6 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐[JAVA100例]076、在Applet中使用Swing,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - 编程语言 】

  

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.*;
/**
 * pTitle: Applet中使用SWING/p
 * pDescription: 使用SWING的JApplet实现树功能。/p
 * pCopyright: Copyright (c) 2003/p
 * pFilename: 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.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1609881.html

延伸阅读
/**  * pTitle: 目录操作/p  * pDescription: 演示列目录下的文件,和移动一个目录/p  * pCopyright: Copyright (c) 2003/p  * pFilename: Dir.java/p  * @version 1.0  */ import java.io.*; public class Dir{  /**  *br方法说明:实现目录列表  *br输入参数:  *br返回类型:  ...
import java.awt.*; import java.applet.*; /**  * pTitle: 带阴影的文字/p  * pDescription: 使用Applet和Graphics,实现一个文字的移动广告。/p  * pCopyright: Copyright (c) 2003/p  * pFilename: ShadowText.java/p  * @version 1.0  */ public class ShadowText extends Applet implements Runnable ...
/**  * pTitle: 线程组群/p  * pDescription: 通过线程组管理下面的多个线程。/p  * pCopyright: Copyright (c) 2003/p  * pFilename: myThreadgroup.java/p  * @version 1.0  */ public class myThreadgroup extends Thread { public static int flag=1; ThreadGroup tgA; ThreadGroup tgB; /**  *b...
/**  * pTitle: 线程同步/p  * pDescription: 通过使用同步锁实现对共享数据的操作/p  * pCopyright: Copyright (c) 2003/p  * pFilename: SyThreadDemo.java/p  * @version 1.0  */ /**  *br类说明:主程序  *br功能描述:构造两个线程,并启动它们  */ public class SyThreadDemo {  ...
/**  * pTitle: 创建多线程/p  * pDescription: 使用构造器,创建多线程。/p  * pCopyright: Copyright (c) 2003/p  * pFilename: multiThread.java/p  * @version 1.0  */ public class multiThread { /**  *br方法说明:主方法  *br输入参数:  *br返回类型:  */  public static vo...

经验教程

634

收藏

77
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部