java swing的树操作
- 格式:wps
- 大小:32.50 KB
- 文档页数:9
Swing(曹雯君)Swing是一个为Java设计的图形用户界面(GUI)工具包。
Swing是Java API的一部分。
Swing包括了GUI的元器件,如:文本框,按钮,分隔窗格和表。
Swing用于提供一组“轻量级”(全部是 Java 语言)组件,它们用纯Java写成,所以同样可以跨平台使用。
轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。
1. 30分钟快速上手1.1 Swing和AWT的关系与区别•关系Swing是一个用于开发JAVA应用程序用户界面的开发工具包。
以抽象窗口包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing API的大部分是AWT的补充扩展而不是直接的替代。
Swing用来绘制轻量级组件的核心渲染功能是由Java 2D提供的,这是AWT的一部分。
然而,轻量级和重量级组件在同一个应用中使用会导致Z-order不兼容。
•区别Swing为基于窗体的GUI应用开发设计,为Java跨平台特性提供了卓越的支持,它完全没有本地代码,不受操作系统的影响,做到了真正的跨平台应用,甚至能够提供本地窗口系统不支持的其他特性。
因此比AWT具有更强的实用性,同时比AWT程序拥有更加精致的外观感受。
AWT只提供基本的组件,使很多设计变得复杂,且无法在不同的平台下保持显示风格的一致性。
例如:如果建立一个按钮(Button)对象,就会有一个按钮对象会请求底层操作系统创建一个真正的按钮。
即在WindowsNT上执行那么创建的就是WindowsNT按钮;在Linux 上执行,那么创建的就是Linux按钮。
因此AWT组件外观会受到底层操作系统的影响。
1.2 Swing操作步骤1.2.1 导入Swing包import javax.swing.*;大部分的Swing程序用到AWT的基础底层结构和事件模型,因此需要导入两个包:import java.awt.*;import java.awt.event.*;如果图形界面中包括了事件处理,那么还需要导入事件处理包:import.javax.swing.event.*;1.2.2 选择界面风格Swing允许选择程序的图形界面风格常用的有Java风格,Windows风格等。
defaultmutabletreetablenode 用法-回复DefaultMutableTreeNode是Java中的一个类,它是Swing组件库中树结构的一部分。
在本文中,我们将详细了解DefaultMutableTreeNode类的用法。
首先,让我们从DefaultMutableTreeNode类的概述开始。
DefaultMutableTreeNode是一个可变的树节点,它实现了MutableTreeNode接口。
这意味着我们可以在运行时更改节点的结构和属性。
DefaultMutableTreeNode类包含了处理树节点的大量方法和功能,使得创建和操作树结构更加简单和便捷。
接下来,我们将介绍DefaultMutableTreeNode类的创建和初始化方法。
创建DefaultMutableTreeNode对象的基本方法是使用构造函数。
DefaultMutableTreeNode类提供了一个无参数的构造函数,以及一些带有不同参数的构造函数。
下面是一个使用无参数构造函数创建DefaultMutableTreeNode对象的示例代码:DefaultMutableTreeNode node = new DefaultMutableTreeNode();上述代码创建了一个空的DefaultMutableTreeNode对象。
我们可以使用其他构造函数来创建具有初始值的DefaultMutableTreeNode对象,例如:DefaultMutableTreeNode node = new DefaultMutableTreeNode("Root");上述代码将创建一个带有名称为"Root"的DefaultMutableTreeNode对象。
接下来,我们将了解如何将节点添加到树中。
要将节点添加到树中,我们需要首先创建根节点。
然后,我们可以使用add()方法将子节点添加到根节点中。
java tree用法
Java中的Tree是一种数据结构,它可以用来表示层次关系的数据,比如文件系统、组织结构等。
在Java中,Tree的常见实现包括Binary Tree、Binary Search Tree、AVL Tree、Red-Black Tree等。
这些Tree结构在Java中都有对应的类库实现,可以直接使用。
在Java中,可以使用TreeMap和TreeSet来实现Tree结构。
TreeMap是基于红黑树实现的,它可以用来存储键值对,并且能够根据键进行排序。
TreeSet是基于TreeMap实现的,它是一个有序的集合,能够自动对元素进行排序。
在使用TreeMap和TreeSet时,需要注意以下几点:
1. 添加的元素必须实现Comparable接口或者在构造TreeMap 和TreeSet时传入Comparator对象,以便进行元素的比较和排序。
2. TreeMap和TreeSet是基于红黑树实现的,因此插入、删除和查找操作的时间复杂度都是O(logN),其中N为元素个数。
3. TreeMap和TreeSet是有序的,它们会根据元素的大小进行排序,因此在遍历时可以得到有序的结果。
除了TreeMap和TreeSet,Java中还有一些第三方库实现了更复杂的Tree结构,比如Apache Commons Collections中的TreeBag、TreeList等。
总之,Java中的Tree结构可以通过TreeMap和TreeSet来实现,它们能够提供高效的插入、删除和查找操作,并且能够自动对元素进行排序。
在实际开发中,可以根据具体的需求选择合适的Tree实现来处理层次关系的数据。
java解析四则运算为树形的方法概述及解释说明1. 引言1.1 概述:本文将讨论Java解析四则运算为树形结构的方法。
四则运算是数学中最基础的运算,包括加法、减法、乘法和除法。
通过对四则运算表达式进行解析,可以将其转化为树形结构,以提供更方便的处理和计算方式。
在本文中,我们将介绍四则运算及其解析方式的简介,并重点关注树形结构在这种解析中的应用。
1.2 文章结构:本文共分为5个部分:引言、正文、解释说明、结论和后记。
在引言部分,我们将给出文章的概述,简述整篇文章的内容与目标。
在正文部分,我们将详细介绍四则运算及其解析方式的简介,并探究树形结构在这种解析中的作用。
在解释说明部分,我们会阐述将四则运算表达式转化为树形结构的基本概念和原理,并讨论Java中实现这一过程的方法。
接着,我们还会探讨树形结构在四则运算解析中的优势和应用场景。
在结论部分,我们将总结文章要点和重点论述内容,并对Java解析四则运算为树形的方法进行评价并展望未来的发展方向。
最后,在后记部分,我们将留下一些附加信息和感想。
1.3 目的:本文的目的是提供一个全面且易懂的解析四则运算为树形结构的方法,并探讨这种方法在Java中的应用。
通过深入了解四则运算的解析和树形结构的应用,读者可以更好地理解并使用这些技术,进一步提高程序设计和算法实现能力。
本文还旨在为Java开发者提供一个可靠而有效的工具,以便于他们处理复杂的四则运算表达式。
跟随本文学习并实践这种方法可以增强编码技巧和培养抽象思维能力,在日常开发中收获不少益处。
2. 正文:2.1 四则运算及其解析方式简介:在数学中,四则运算指的是加法、减法、乘法和除法这四种基本运算。
它们是最常见和基础的数学运算,广泛应用于各个领域。
在计算机科学中,我们通常需要将四则运算表达式进行解析,以便计算机能够理解和执行。
2.2 树形结构在四则运算解析中的应用:树形结构是一种非常适合表示嵌套层次关系的数据结构。
Java Swing中的JTree模型本文介绍Java Swing中的JTree模型,介绍如何创建、修改、遍历,设置树。
参考Core Java2相关章节及其源代码。
Swing树使用人们所熟悉的文件夹和树叶图来显示分层的数据。
树由节点组成,节点可以是文件夹,也可以是树叶。
文件夹可以有子节点,除根节点之外的所有节点都只有一个父节点。
空的文件夹与树叶的不同之处就在于它允许有子节点。
除父节点和子节点外,树的节点还有一个用户对象(当使用DefaultTreeModel时就会呈现一个用户对象)。
用户对象是Object类型,因此它提供了一个将任意对象与节点相关联的办法。
树有一个简单的模型,每一个JTree实例都要维护对绘制器和编辑器的引用,这个绘制器和编辑器被树中所有的节点所使用。
表1中列出了swing.tree包中的主要类。
表1 Swing.tree包中的主要类名称实现DefaultMutableTreeNode 一个具有一个父节点、(可能)许多子节点和一个用户对象的可变节点,为相关联的节点提供了访问方法。
如果没有任何子节点,这个节点就是树叶。
DefaultTreeModel 一个激发TreeModel Events事件的简单可变的模型。
提供对子节点的访问方法,但不是提供对父节点的访问方法。
DefaultTreeCellEditor 绘制器和编辑器的包装器,它把一个“真正”的编辑器组件放在节点图标的旁边。
DefaultTreeCellRenderer 具有字体、颜色和图标访问方法的JLabel扩展,它提供图标的缺省值。
TreePath 由一个节点到另一个节点的路径。
路径中的节点存储在一个数组中。
路径用于在选取内容之间进行通信。
1.构建树模型详细代码见SimpleTree.javaDefaultMutableTreeNode root = new DefaultMutableTreeNode("World"); DefaultMutableTreeNode country = new DefaultMutableTreeNode("USA");root.add(country);。
swing jxtreetable用法Swing JXTreeTable是基于Java Swing的扩展组件,提供了一个带有树形结构的表格控件。
JXTreeTable具有JTable的所有功能以及额外的树形结构功能,可以同时展示表格和树状结构的数据。
本文将详细介绍JXTreeTable的用法,包括创建和初始化、添加数据、自定义表格和树状结构、以及其他常用操作等。
1. 创建和初始化JXTreeTable首先,创建一个JXTreeTable实例需要导入相应的包和类。
JXTreeTable位于swingx包中,可通过以下代码导入:import org.jdesktop.swingx.JXTreeTable;然后,可以通过构造函数创建JXTreeTable实例:JXTreeTable treeTable = new JXTreeTable();如果需要传递表格数据模型和树状结构数据模型,可以使用以下构造函数:TreeTableModel treeT ableModel = new MyTreeTableModel(root); 自定义树状结构数据模型TableModel tableModel = new DefaultTableModel(data, columnNames); 表格数据模型JXTreeTable treeTable = new JXTreeTable(treeTableModel, tableModel);在创建JXTreeTable实例后,可以通过以下代码设置表格的可见行数和列数:treeTable.setVisibleRowCount(10); 可见行数为10treeTable.setVisibleColumnCount(5); 可见列数为52. 添加数据添加数据到JXTreeTable可以使用默认的TableModel类或者自定义的TableModel类。
如果使用默认的TableModel类,可以使用以下代码添加行数据:DefaultTableModel model = (DefaultTableModel)treeTable.getTableModel();model.addRow(new Object[] { "Data 1", "Data 2", "Data 3" });如果需要添加树状结构的数据,可以使用以下代码:TreeTableModel treeModel = (TreeTableModel)treeTable.getTreeTableModel();treeModel.insertNodeInto(node, parent, index);其中,node是要插入的节点,parent是父节点,index是要插入的位置。
在Java1.0中,已经有一个用于GUI编程的类库AWT(Abstract Window Toolkit),称之为抽象窗口工具箱。
遗憾的是,AWT中的组件(例如按钮,类名为Button)在实现中使用了本地代码(Native Code),这些组件的创建和行为是由应用程序所在平台上的本地GUI工具来处理的。
因此,AWT组件要在不同的平台上提供给用户一致的行为就受到了很大的限制。
同时,AWT组件中还存在很多bug,这就使得使用AWT来开发跨平台的GUI应用程序困难重重。
1996年,SUN公司和Netsacpe公司在一个称为Swing的项目中合作完善了Netsacpe公司原来开发的一套GUI库,也就是现在所谓的Swing组件。
Swing组件和原来的AWT组件完全不同,最大的区别就是Swing组件的实现中没有使用本地代码,这样对底层平台的依赖型就大为降低,并且可以给不同平台的用户一致的感觉。
此外,和原来的AWT相比,Swing 中提供了内容更多、使用更为方便的组件。
在阅读一些书籍时,常会遇到名词JFC(Java Foundation Class)。
JFC的概念是在1997年的JavaOne开发者大会上首次提出的,是指用于构建GUI的一组API。
实际上,Swing只是JFC的一部分,其它的还有二维图形(Java 2D)API以及拖放(Drag and Drop)API等等。
Swing并不是完全取代了AWT,Swing只是使用更好的GUI组件(如JButton)代替AWT 中相应的GUI组件(如Button),并且增加了一些AWT中原来所没有的GUI组件。
并且,Swing 仍使用AWT 1.1的事件处理模型。
虽然现在AWT组件仍得到支持,但是建议在你的应用程序中尽量使用Swing组件和1.1的事件模型。
1.标签(JLabel)标签(JLabel)通常是用来标识另外一个组件的含义。
以在标签上显示文字、图象或是文字图象的组合。
JTree用法1。
自动展开树package testpicturejava;import java.awt.*;import javax.swing.*;import javax.swing.tree.TreeNode;import javax.swing.tree.TreePath;import java.util.Enumeration;public class JTreeFrame extends JFrame {public JTreeFrame() {try {jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {getContentPane().setLayout(null);setSize(new Dimension(434, 347));setTitle("JTree Frame Title");jScrollPane1.setBounds(new Rectangle(9, 9, 429, 317));this.getContentPane().add(jScrollPane1);expandTree(jTree1);jScrollPane1.getViewport().add(jTree1);}/** * 完全展开一个JTree * @param tree JTree */public static void expandTree(JTree tree) {TreeNode root = (TreeNode) tree.getModel().getRoot();expandAll(tree, new TreePath(root), true);}/** * 完全展开或关闭一个树,用于递规执行 * @param tree JTree * @param parent 父节点 * @param expand 为true则表示展开树,否则为关闭整棵树 */private static void expandAll(JTree tree, TreePath parent, boolean expand) {//Traverse childrenTreeNode node = (TreeNode) parent.getLastPathComponent();if (node.getChildCount() >= 0) {for (Enumeration e = node.children(); e.hasMoreElements(); ) {TreeNode n = (TreeNode) e.nextElement();TreePath path = parent.pathByAddingChild(n);expandAll(tree, path, expand);}} // Expansion or collapse must be done bottom-upif (expand) {tree.expandPath(parent);}}JScrollPane jScrollPane1 = new JScrollPane();JTree jTree1 = new JTree();}2。
java发光圣诞树的代码编写在Java中编写一个发光的圣诞树可以是一项有趣的挑战。
以下是一个简单的示例代码,可以帮助你创建一个发光的圣诞树:import java.awt.Color;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;public class GlowingChristmasTree extends JPanel {public void paint(Graphics g) {// 设置绘制区域的背景颜色为黑色setBackground(Color.BLACK);// 绘制圣诞树的主干g.setColor(Color.GREEN);g.fillRect(300, 250, 20, 150);// 绘制圣诞树的叶子// 第一层g.setColor(Color.GREEN);g.fillOval(250, 200, 120, 120);// 第二层g.setColor(Color.RED);g.fillOval(225, 160, 170, 170); // 第三层g.setColor(Color.GREEN);g.fillOval(200, 120, 220, 220); // 第四层g.setColor(Color.RED);g.fillOval(175, 80, 270, 270); // 第五层g.setColor(Color.GREEN);g.fillOval(150, 40, 320, 320);// 绘制圣诞树的彩灯g.setColor(Color.YELLOW);g.fillOval(280, 200, 20, 20);g.fillOval(310, 180, 20, 20);g.fillOval(340, 200, 20, 20);g.fillOval(360, 230, 20, 20);g.fillOval(350, 260, 20, 20);g.fillOval(330, 290, 20, 20);g.fillOval(300, 310, 20, 20); g.fillOval(270, 290, 20, 20);g.fillOval(250, 260, 20, 20);g.fillOval(245, 230, 20, 20);}public static void main(String[] args) {// 创建一个新的 JFrameJFrame frame = new JFrame();// 将绘制区域添加到 JFrame 中frame.add(new GlowingChristmasTree());// 设置 JFrame 的大小和标题frame.setSize(650, 500);frame.setTitle('Glowing Christmas Tree');// 设置 JFrame 关闭时的操作frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 让 JFrame 可见frame.setVisible(true);}}在该代码中,我们使用Java的绘图API来绘制圣诞树和彩灯。
深入浅出java swing程序设计-概述说明以及解释1.引言1.1 概述Java Swing是一种用于构建图形用户界面(Graphical User Interface,简称GUI)的Java库。
它为开发人员提供了丰富的组件和布局管理器,可以轻松创建具有各种功能和样式的交互式应用程序。
Java Swing的出现填补了Java原生GUI工具包的不足,为开发人员提供了更多的自定义和灵活性。
与AWT(Abstract Window Toolkit)相比,Swing提供了更多的组件和界面控件,同时具备更好的跨平台性。
Java Swing不仅仅是一个图形用户界面库,它还提供了一整套用于处理用户输入、图形绘制、多媒体展示等功能的类和工具。
开发人员可以利用这些工具快速构建具有丰富交互性的应用程序。
本文将深入浅出地介绍Java Swing程序设计的基本概念和技巧。
我们将从Swing的组件和布局开始,逐步展示如何创建简单且功能强大的用户界面。
通过学习本文,读者将能够掌握Java Swing的核心知识,并能够利用这些知识开发出符合自己需求的应用程序。
本文的目的是帮助读者快速上手Java Swing,了解其基本概念和使用方法。
同时,我们也将展望Java Swing的未来发展,探讨其在现代应用程序开发中的重要性和应用前景。
在接下来的正文部分,我们将详细介绍Java Swing的基本概念,包括组件、事件、布局等内容。
同时,我们还将给出一些实际的例子,以便读者更好地理解和应用所学知识。
总之,本文将从大纲所列的各个方面对Java Swing进行深入浅出的探讨,旨在帮助读者全面了解和掌握Java Swing程序设计的基本技巧和应用方法。
希望读者能够通过本文的学习,具备自主开发Java Swing应用程序的能力,并能在实际项目中灵活应用所学知识。
1.2 文章结构本文主要以深入浅出的方式介绍Java Swing程序设计。
文章分为引言、正文和结论三个部分,每个部分有相应的小节。
java swing的树操作import java.awt.Dimension;import java.awt.Image;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException;import java.nio.ByteBuffer;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.*;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.TreePath;public class MyTree extends JFrame {//增加带滚动条容器private JScrollPane jScrollPane1 = new JScrollPane();private JTree tree;private JPopupMenu popMenu;public JScrollPane getjScrollPane1() {return jScrollPane1;}public void setjScrollPane1(JScrollPane jScrollPane1) {this.jScrollPane1 = jScrollPane1;}public JPopupMenu getPopMenu() {return popMenu;}public void setPopMenu(JPopupMenu popMenu) {this.popMenu = popMenu;}public MyTree() {try {init();treeInit();popMenuInit();} catch (Exception exception) {exception.printStackTrace();}this.setSize(800, 600);this.setResizable(true);this.setMinimumSize(new Dimension(800, 600));this.setLocationRelativeTo(null);this.setVisible(true);//退出时需要终止当前jvmthis.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }//设置当前窗口的信息private void init() {getContentPane().setLayout(null);setTitle("树操作");}//初始化景点分类树public void treeInit() {if (jScrollPane1 != null) {this.remove(jScrollPane1);}jScrollPane1.setBounds(new Rectangle(0, 0, 800, 600));jScrollPane1.setAutoscrolls(true);this.getContentPane().add(jScrollPane1);expandTree();tree.addMouseListener(new TreePopMenuEvent(this));this.repaint();}//右键点击分类导航树的菜单private void popMenuInit() {popMenu = new JPopupMenu();JMenuItem addItem = new JMenuItem("添加");addItem.addActionListener(new TreeAddViewMenuEvent(this));JMenuItem delItem = new JMenuItem("删除");delItem.addActionListener(new TreeDeleteViewMenuEvent(this));JMenuItem modifyItem = new JMenuItem("修改");modifyItem.addActionListener(new TreeModifyViewMenuEvent(this));popMenu.add(addItem);popMenu.add(delItem);popMenu.add(modifyItem);}/*** 完全展开一个JTree** @param tree JTree*/public void expandTree() {DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点");tree = new JTree(root);tree.addTreeSelectionListener(new TreeSelectionListener() {public void valueChanged(TreeSelectionEvent e) { //选中菜单节点的事件DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();}});tree.updateUI();jScrollPane1.getViewport().add(tree);}/*** 获取图片文件内容** @param fileName* @return*/public Image getImage(String fileName) {FileInputStream fis = null;try {fis = new FileInputStream(fileName);BufferedInputStream bis = new BufferedInputStream(fis);ByteBuffer bb = ByteBuffer.allocate(1024 * 1024);byte[] buffer = new byte[1];while (bis.read(buffer) > 0) {bb.put(buffer);}ImageIcon icon = new ImageIcon(bb.array());return icon.getImage();} catch (IOException ex) {Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);} finally {try {fis.close();} catch (IOException ex) {Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);}}return null;}public JTree getTree() {return tree;}/*** popmenu点击右键的增加处理*/class TreeAddViewMenuEvent implements ActionListener {private MyTree adaptee;public TreeAddViewMenuEvent(MyTree adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {String name = JOptionPane.showInputDialog("请输入分类节点名称:");DefaultMutableTreeNode treenode = new DefaultMutableTreeNode(name);((DefaultMutableTreeNode)this.adaptee.getTree().getLastSelectedPathComponent()).add(treenode);this.adaptee.getTree().expandPath(newTreePath(((DefaultMutableTreeNode)this.adaptee.getTree().getLastSelectedPathComponent()).getPath()));this.adaptee.getTree().updateUI();}}/*** popmenu点击右键的删除处理*/class TreeDeleteViewMenuEvent implements ActionListener {private MyTree adaptee;public TreeDeleteViewMenuEvent(MyTree adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {int conform = JOptionPane.showConfirmDialog(null, "是否确认删除?", "删除景点确认", JOptionPane.YES_NO_OPTION);if (conform == JOptionPane.YES_OPTION) {DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) (((DefaultMutableTreeNode)this.adaptee.getTree().getLastSelectedPathComponent()).getParent());((DefaultMutableTreeNode)this.adaptee.getTree().getLastSelectedPathComponent()).removeFromParent();this.adaptee.getTree().updateUI();}}}}/*** popmenu点击右键的修改处理*/class TreeModifyViewMenuEvent implements ActionListener {private MyTree adaptee;public TreeModifyViewMenuEvent(MyTree adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {String name = JOptionPane.showInputDialog("请输入新分类节点名称:");DefaultMutableTreeNode node = (DefaultMutableTreeNode) this.adaptee.getTree().getSelectionPath().getLastPathComponent();//改名node.setUserObject(name);//刷新this.adaptee.getTree().updateUI();}}/*** 菜单点击右键的事件处理*/class TreePopMenuEvent implements MouseListener {private MyTree adaptee;public TreePopMenuEvent(MyTree adaptee) {this.adaptee = adaptee;}public void mouseClicked(MouseEvent e) {}public void mousePressed(MouseEvent e) {TreePath path = adaptee.getTree().getPathForLocation(e.getX(), e.getY()); // 关键是这个方法的使用if (path == null) {return;}adaptee.getTree().setSelectionPath(path);if (e.getButton() == 3) {adaptee.getPopMenu().show(adaptee.getTree(), e.getX(), e.getY());}}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public static void main(String[] args) {try {JFrame.setDefaultLookAndFeelDecorated(true);UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");MyTree userframe = new MyTree();} catch (ClassNotFoundException ex) {Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);} catch (InstantiationException ex) {Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);} catch (IllegalAccessException ex) {Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);} catch (UnsupportedLookAndFeelException ex) {Logger.getLogger(MyTree.class.getName()).log(Level.SEVERE, null, ex);}}}新闻网:。