国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

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

2019-11-18 15:58:26
字體:
來源:轉載
供稿:網(wǎng)友

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實現(xiàn)樹功能。</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的內(nèi)容
  context = getAppletContext();
  //定義根節(jié)點
  DefaultMutableTreeNode root = null;
  getContentPane().setLayout(new BorderLayout());
  //獲取參數(shù)。定義的數(shù)據(jù)配置文件。
  String s = getParameter("file");
  if (s != null) {
   try {
    //使用URL方式打開數(shù)據(jù)文件,實現(xiàn)在網(wǎng)絡上使用。
    URL url = new URL(getDocumentBase(), s);
    BufferedReader br = new BufferedReader(
     new InputStreamReader(url.openStream(), "JISAutoDetect"));
    //讀取第一行數(shù)據(jù),假如為空則不執(zhí)行
    String line = br.readLine();
    if (line == null) return;
    root = new DefaultMutableTreeNode(line);
    nodeAt[0] = root;
    int level = 0;
    while ((line = br.readLine()) != null) {
     //使用“”分開數(shù)據(jù)
     StringTokenizer st = new StringTokenizer(line, "");
     String token = st.nextToken();
     int n = countSpaces(token);
     //添加節(jié)點名稱
     DefaultMutableTreeNode node = new DefaultMutableTreeNode(token.trim());
     //計算節(jié)點級數(shù)
     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;
     //對“”符號后的數(shù)據(jù)進行處理
     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);
   //添加樹的選擇監(jiān)聽
   tree.addTreeSelectionListener(this);
   JScrollPane jsp = new JScrollPane(tree);
   getContentPane().add(jsp, BorderLayout.CENTER);
  }
 }
/**
 *<br>方法說明:計算空格數(shù)
 *<br>輸入?yún)?shù):
 *<br>返回類型:
 */ 
 private int countSpaces(String s) {
  int n = 0;
  while (s.charAt(n) == ´ ´) {
   n++;
  }
  return n;
 }
/**
 *<br>方法說明:樹選擇監(jiān)聽實現(xiàn)方法
 *<br>輸入?yún)?shù):TreeSelectionEvent e 選擇樹節(jié)點事件
 *<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));
   //打開連接,通知瀏覽器加載網(wǎng)頁(使用瀏覽器打開Applet的情況下)
   context.showDocument(url);
  }
 }




發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘南县| 正阳县| 太和县| 阳新县| 林口县| 连平县| 东至县| 五常市| 军事| 宁都县| 安西县| 民勤县| 西充县| 沙雅县| 呼图壁县| 垫江县| 黔江区| 鹿泉市| 岳普湖县| 安岳县| 龙门县| 扶余县| 宣武区| 东明县| 马关县| 大庆市| 忻州市| 乐平市| 内江市| 民丰县| 满洲里市| 鸡东县| 兰州市| 咸阳市| 铜川市| 清河县| 榆中县| 长乐市| 宝丰县| 临高县| 蓬溪县|