当前位置:  技术问答>java相关

此问题有点复杂,100份可能太少,不够再加,关于JTree的使用

    来源: 互联网  发布时间:2015-09-06

    本文导语:  我现在有棵JTree,共有三个节点,要求每个节点的图标不一样,而且每个图标在获得焦点时,与原来又不一样。同时,这三个节点又有两个子节点,这两个子节点图标也不一样,如何做?希望各位不要怕太麻烦,帮小弟...

我现在有棵JTree,共有三个节点,要求每个节点的图标不一样,而且每个图标在获得焦点时,与原来又不一样。同时,这三个节点又有两个子节点,这两个子节点图标也不一样,如何做?希望各位不要怕太麻烦,帮小弟一把,多谢!能给出能运行的源代码更好,解决就能得100分,两人解决再加100分

|
package tree;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.tree.*;
import java.util.*;

public class Mytree4 extends Applet {
  boolean isStandalone = false;
  JScrollPane scrollPane = new JScrollPane();
  JTree jTree1 = null;
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JTextField jTextField1 = new JTextField();
/////////////////////////////////////////////////////////////
  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }

//////////////////////////////////////////////////////////////
  public Mytree4() {

  }
/////////////////////////////////////////////////////////////
  public void init() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
//////////////////////////////////////////////////
  private void jbInit() throws Exception {
    jTextField1.setBounds(new Rectangle(195, 17, 148, 42));
    jButton2.setFont(new java.awt.Font("Serif", 0, 12));
    jButton2.setText("exit");
    jButton2.setBounds(new Rectangle(308, 421, 69, 32));
    jButton2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton2_actionPerformed(e);
      }
    });
    jButton1.setFont(new java.awt.Font("Serif", 0, 12));
    jButton1.setText("but");
    jButton1.setBounds(new Rectangle(168, 421, 69, 32));
    this.setBackground(Color.lightGray);
    this.setLayout(null);

    creattree();
/////////////////////////////////////////////////////////////
  }
/////////////////////////////////////////////////////////////
  public String getAppletInfo() {
    return "Applet Information";
  }
/////////////////////////////////////////////////////////////
  public String[][] getParameterInfo() {
    return null;
  }
 public void creattree()
 {
   DefaultMutableTreeNode root = new DefaultMutableTreeNode("资源管理器");
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("我的公文包");
        DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("我的电脑");
        DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("收藏夹");
        DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Readme");
///////////////////////////////////////
        DefaultTreeModel treeModel = new DefaultTreeModel(root);
        treeModel.insertNodeInto(node1, root, root.getChildCount());
        treeModel.insertNodeInto(node2, root, root.getChildCount());
        treeModel.insertNodeInto(node3, root, root.getChildCount());
        treeModel.insertNodeInto(node4, root, root.getChildCount());
///////////////////////////////////////
        DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("公司文件");
        treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
        leafnode = new DefaultMutableTreeNode("个人信件");
        treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
        leafnode = new DefaultMutableTreeNode("私人文件");
        treeModel.insertNodeInto(leafnode, node1, node1.getChildCount());
///////////////////////////////////////
        leafnode = new DefaultMutableTreeNode("本机磁盘(C:)");
        treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
        leafnode = new DefaultMutableTreeNode("本机磁盘(D:)");
        treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
        leafnode = new DefaultMutableTreeNode("本机磁盘(E:)");
        treeModel.insertNodeInto(leafnode, node2, node2.getChildCount());
///////////////////////////////////////
        DefaultMutableTreeNode node31 = new DefaultMutableTreeNode("网站列表");
        treeModel.insertNodeInto(node31, node3, node3.getChildCount());
        leafnode = new DefaultMutableTreeNode("奇摩站");
        treeModel.insertNodeInto(leafnode, node3, node3.getChildCount());
        leafnode = new DefaultMutableTreeNode("职棒消息");
        treeModel.insertNodeInto(leafnode, node3, node3.getChildCount());
        leafnode = new DefaultMutableTreeNode("网络书店");
        treeModel.insertNodeInto(leafnode, node3, node3.getChildCount());
///////////////////////////////////////
        JTree tree = new JTree(treeModel);
        tree.setRowHeight(20);
///////////////////////////////////////
        DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer();
        cellRenderer.setLeafIcon(new ImageIcon(".\icons\tt.gif"));
        cellRenderer.setOpenIcon(new ImageIcon(".\icons\open24.gif"));
        cellRenderer.setClosedIcon(new ImageIcon(".\icons\close24.gif"));
///////////////////////////////////////
        cellRenderer.setFont(new Font("宋体",Font.PLAIN,12));
        cellRenderer.setBackgroundNonSelectionColor(Color.white);
        cellRenderer.setBackgroundSelectionColor(Color.yellow);
        cellRenderer.setBorderSelectionColor(Color.red);
        cellRenderer.setTextNonSelectionColor(Color.black);
        cellRenderer.setTextSelectionColor(Color.blue);
///////////////////////////////////////
        tree.setEditable(false);
        JScrollPane scrollPane = new JScrollPane();
/////////////////////////////////////////////
    tree.setBounds(new Rectangle(80, 5, 162, 321));
    scrollPane.setBounds(new Rectangle(4, 3, 146, 368));
    this.add(scrollPane);
    this.add(jTextField1, null);
    this.add(jButton2, null);
    this.add(jButton1, null);
    scrollPane.setViewportView(tree);
  }
/////////////////////////////////////////////////////////////
   public static void  main(String[] args) {
   Mytree4 applet = new Mytree4();
   applet.isStandalone =true;
     Frame frame;
     frame = new Frame() {
      protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          System.exit(0);
        }
      }
      public synchronized void setTitle(String title) {
        super.setTitle(title);
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
      }
    };
    frame.setTitle("树实例");
    frame.setResizable(false);
    frame.add(applet, BorderLayout.CENTER);
    applet.init();
    applet.start();
    frame.setSize(580,517);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
    frame.setVisible(true);
  }

  void jButton2_actionPerformed(ActionEvent e) {
System.exit(0);
  }
////////////////////////////////////////////
}

|
http://www.csdn.net/expert/topic/583/583148.xml?temp=.8619806

    
 
 

您可能感兴趣的文章:

  • 新手问题给十分不知够不够,不够再给。
  • 一个基本问题,但需要高手指点。。水平不够者勿误导
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题 (分不够可加)
  • 关于crontab问题(若分不够,可加)
  • 硬盘空间不够的问题
  • JB5安装问题,分不够可以在加!
  • 关于截分文件的问题?分不够可再加
  • 关于red hat 8.0的问题,不够再给,(在线等)
  • 关于写文件报磁盘空间不够的错的问题
  • 刷新率问题!分不够可以再加!在线等待!!
  • 急!急!100分问题求解(不够可加)输入中文到oracle数据库乱码的问题
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • 硬盘空间不够的问题!
  • gtk+GUI问题,100分!!!不够再开贴给分!!!在线等!!!!!!!跟贴就有分!!!!!
  • 字符集的问题,请大家帮忙了!分不够再加
  • 各位高手请指点:cvs的安装问题!!!在线等待,分不够可再加!!
  • 请教这里的高手一个巨麻烦的问题,分不够另加。
  • JRE1.3.1的字体问题,分不够可再加。
  • 高分请教输入法的问题,分不够可以再给.
  • c 语言和shell 混合编程问题?(分不够可以另加)
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • 比较高级的问题哦,就是不知道可不可能?
  • 可能的问题??
  • 很奇怪的问题,可能是我的知识面不广。
  • 问题可能有点怪
  • 一个初级,但可能困扰够很多人的问题
  • 可能不止一个的菜鸟问题。
  • 编译JSP文件出错,这可能是什么问题,请教高手!
  • 请问两个JAVA问题,一个很浅、一个可能很深
  • 单片机在windows能运行,在linux下不能读数据,有没有可能是单片机端问题?
  • 一个可能是关于classpath的问题。3x!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • nginx Windows版相关问题及使用说明
  • gcc和cc得使用问题?能互相交换使用么?
  • [请置顶]关于Linux的安装使用问题 请放到 软件使用/操作系统 里提问
  • 使用VWMARE安装linux的内存使用问题
  • 原来使用在这里:vmware中的redhat 8.0使用声卡的问题!!急
  • 几台机器做lvs,使用100M 网线连接,文件系统使用NFS共享,读写速度会出现问题吗?
  • ubuntu的问题。查看内存使用情况的问题
  • 菜鸟问题,小弟刚刚使用LINUX不久,不知道如何使用编程工具进行编译和运行!
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 弱智问题:我们怎么才知道要使用的方法需要实现什么接口才能使用这个方法呢?
  • 菜鸟问题 : 关于使用Flex的问题
  • 关于linux下QQ和代理服务器使用的问题(2个问题)
  • freebsd做前台 使用win2000做储存器问题问题(非高手免进)
  • 初学者问题(2):关于super的使用问题,请大家多多帮忙。
  • fedara13 初使用之问题
  • 关于windows下的gcc使用问题
  • 移动硬盘使用问题求解?百分相赠!!
  • 关于如何使用内核函数的问题
  • 我在使用j2sdkee1.3.1使用deploytool部署EJB时发现这样的问题
  • 急求,用户程序使用atomic的编译问题!!
  • 关于一个jbuilder使用的问题
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 死锁的问题 多级锁定问题 循环锁定问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3