- 浏览: 185023 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
wanglijunjsj:
谢谢,很有用
java log4j的一些总结 -
lxb_champagne:
this.init(); 类都没初始化好,this没用的。
java final变量的初始化问题 -
lg_asus:
上面代码有点小问题,最新代码:
public class Pr ...
判断素数 -
lg_asus:
测试10 million的以内的数据,算出所有素数时间在500 ...
判断素数 -
lg_asus:
文章中说错了:如果只是找一个数在不在其中,则可以直接遍历一次, ...
40亿不重复的正整数,如何判断一个数是否在其中
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; public class JTreeDemo2 implements ActionListener,TreeModelListener{ JLabel label = null; JTree tree = null; DefaultTreeModel treeModel = null; String nodeName = null;//原節點名稱 JButton button1,button2,button3; public JTreeDemo2(){ JFrame jf = new JFrame("JTreeDemo2"); Container contentPane = jf.getContentPane(); DefaultMutableTreeNode root = new DefaultMutableTreeNode("資源管理器"); tree = new JTree(root); tree.setEditable(true); tree.addMouseListener(new MouseHandle2()); treeModel = (DefaultTreeModel)tree.getModel(); treeModel.addTreeModelListener(this); tree.addMouseListener(new MouseAdapter(){ @Override public void mousePressed(MouseEvent e){ TreePath treePath = tree.getPathForLocation(e.getX(), e.getY()); if(treePath!=null){ button1.setEnabled(true); button2.setEnabled(true); }else{ button1.setEnabled(false); button2.setEnabled(false); } } }); JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(tree); JPanel panel = new JPanel(); button1 = new JButton("新增節點"); button1.addActionListener(this); button1.setEnabled(false); panel.add(button1); button2 = new JButton("刪除節點"); button2.addActionListener(this); button2.setEnabled(false); panel.add(button2); button3 = new JButton("清除所有節點"); button3.addActionListener(this); panel.add(button3); label = new JLabel("Action"); contentPane.add(panel,BorderLayout.NORTH); contentPane.add(scrollPane,BorderLayout.CENTER); contentPane.add(label,BorderLayout.SOUTH); jf.pack(); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String...args){ new JTreeDemo2(); } @Override public void actionPerformed(ActionEvent e){ if(e.getSource()==button1){ DefaultMutableTreeNode parentNode = null; DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新增節點"); newNode.setAllowsChildren(true); TreePath treePath = tree.getSelectionPath(); if(treePath!=null){ parentNode = (DefaultMutableTreeNode) treePath.getLastPathComponent(); System.out.println("parentNode:"+parentNode.getUserObject()); treeModel.insertNodeInto(newNode, parentNode, parentNode.getChildCount()); tree.scrollPathToVisible(new TreePath(newNode.getPath())); label.setText("新增節點成功"); } } if(e.getSource()==button2){ TreePath treePath = tree.getSelectionPath(); System.out.println(treePath); if(treePath!=null){ DefaultMutableTreeNode selectionNode = (DefaultMutableTreeNode)treePath.getLastPathComponent(); TreeNode parentNode = selectionNode.getParent(); if(parentNode!=null){ treeModel.removeNodeFromParent(selectionNode); label.setText("刪除節點成功"); } } } if(e.getSource()==button3){ // button1.setEnabled(false); // button2.setEnabled(false); DefaultMutableTreeNode root = (DefaultMutableTreeNode) treeModel.getRoot(); root.removeAllChildren(); treeModel.reload(); tree.repaint(); label.setText("清除所有節點成功"); } } @Override public void treeNodesChanged(TreeModelEvent e){ TreePath treePath = e.getTreePath(); DefaultMutableTreeNode node = (DefaultMutableTreeNode)treePath.getLastPathComponent(); try{ int[] index = e.getChildIndices(); node = (DefaultMutableTreeNode) node.getChildAt(index[0]); }catch(NullPointerException ne){ System.out.println("你選擇的是根節點,它沒有子節點"); } label.setText(nodeName+"更改數據為:"+(String)node.getUserObject()); } @Override public void treeNodesInserted(TreeModelEvent e){ System.out.println("New Node Inserted"); } @Override public void treeNodesRemoved(TreeModelEvent e){ System.out.println("Node Deleted"); } @Override public void treeStructureChanged(TreeModelEvent e){ System.out.println("structure changed"); } class MouseHandle2 extends MouseAdapter{ @Override public void mousePressed(MouseEvent e){ try{ TreePath treePath = tree.getSelectionPath(); /*JTree tree = (JTree)e.getSource(); int rowLocation = tree.getRowLocation(e.getX(),e.getY()); TreePath treePath = tree.getPathForRow(rowLocation); */ DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)treePath.getLastPathComponent(); // TreeNode treeNode2 = (DefaultMutableTreeNode)treePath.getLastPathComponent(); nodeName = (String) treeNode.getUserObject(); }catch(NullPointerException ne){ System.out.println("nullpointer"); } } } }
參考:深入淺出Java Swing程序設計
发表评论
-
swt tree demo with a text editor
2012-12-25 16:41 1450项目需要,从XML中读取数据生成一个Tree,然后可以对叶子节 ... -
Paint in AWT andSwing
2012-04-20 21:32 0jdk 1.0中用的是AWT,有一个缺点,就是每个组件要和一个 ... -
SwingUtilities的invokeLater和invokeAndWait
2012-02-28 18:00 1115参考: http://blog.csdn.net/bzwm/a ... -
swing第三方jar增强功能
2012-02-14 16:34 2472原文:http://hb.qq.com/a/20101220/ ... -
swing 日期组件
2012-02-03 15:35 1121/** * chega * 2011-9-21上午 ... -
java swing全屏显示方式
2012-02-01 11:01 4997覆盖任务栏和不覆盖任务栏见:http://blog.csdn. ... -
带有行标题的JTable
2012-01-06 15:59 1173/** * @author chega * thi ... -
JColorChooser
2010-07-18 21:25 1122import java.awt.*; import ja ... -
JFileChooser
2010-07-18 20:17 1194import java.awt.*; import ja ... -
AbstractAction
2010-07-18 10:00 1776import java.awt.*; import ja ... -
JMenuItem和JTollBar
2010-07-18 09:34 1442import java.awt.*; import ja ... -
JTree
2010-07-17 16:41 1153import java.awt.*; import ja ... -
JTree
2010-07-17 13:17 1006import java.awt.*; import ja ... -
UndoableEditListener 和 DocumentListener
2010-07-15 21:24 1292import java.awt.*; import ja ... -
JTable增刪行列
2010-07-14 19:57 1420import java.awt.*; import ja ... -
JTable背景色與Boolean類型數據顯示衝突的問題
2010-07-12 16:53 904import java.awt.*; import java ... -
JComboBox每個Item加圖標
2010-07-11 16:46 1267import java.awt.*; import java ... -
JComboBox
2010-07-11 16:33 1276JComboBox(ComboModel):可以繼承Abstr ... -
JList雙向列表
2010-07-11 15:43 784import java.awt.*; import java ... -
給JList每個Item加個圖標
2010-07-11 14:40 1377import java.awt.*; import ja ...
相关推荐
JTree的使用 JTree的使用 JTree的使用
jtree中加checkbox,实用哦。
实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。
JTree的例子,可以拖动节点 JTree的例子,可以拖动节点
java JTree+JTable使用样例,实现将JTree的节点内容显示到JTable中,eclipse导入maven项目 maven编译: mvn clean package
JAVA JTREE实例代码、JAVA JTABLE实例代码
JTree 树形菜单插件包下载,在网页上快速实现树控菜单的一个小插件,功能相对完善,本次更新功能:加入treeNodes(数组形式),通过treeNodes可以对指定的子树进行收缩和展开功能,查找指定节点的功能。加入这个功能...
JTree用法及JTree使用经验总结(吐血推荐) 1、初始化 2、三个经常使用的取值函数 3、根据node得到path:4、根据Path展开到该节点 5、根据path设定该节点选定 6、选中节点的方法 7、滚动到可见位置 8、给JTree添加右键...
java使用jtree动态实现二叉树,包含二叉树的插入删除很查找
JTree上的每一个节点就代表一个TreeNode对象,TreeNode本身是一个Interface,里面定义了7个有关节点的方法,例如判断是否 为树叶节点、有几个子节点(getChildCount())、父节点为何(getparent())等等、这些方法的定义...
JTree的用法
jtree带复选框的 很典型的例子 当子节点有一个没有被选中时 父节点及其父父结点均不会被选中
JTree tree = new JTree(root); tree.setRootVisible(false);//不显示树的根节点 tree.setRowHeight(20);//树节点的行高为20像素 tree.setFont(new Font("宋体", Font.BOLD, 14));//设置树结点的字体 //...
java组件之jtree使用 10-1:使用JTree组件: 10-2:以Hashtable构造JTree: 10-3:以TreeNode构造JTree: . . . . 10-8:JTree的其他操作:
jtree节点可编辑
jtree , 经典教程,jtree 例子 ,很适合初学者,和急需使用的读者,一看就会
在java中,树对象提供了用树型结构分层显示数据的视图。可以扩展和收缩视图中的单个子树。树由Swing中的JTree类实现,JTree是Jcomponent的子类。文档就介绍了JTree的使用
JTree设置QQ好友树形列表中不同好友的图像,采用swing组件
JTree用法大全,各种使用方法demo,介绍,并附注释。
java中的关于jtree编程的详细介绍,通过jtree的使用,掌握模型设计的核心技术,同时丰富了java界面的美观度和实用度。