日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

显示隐藏JTree节点

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 显示隐藏JTree节点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Enumeration;import javax.swing.JCheckBox; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel;class FilteredTree {private class PlainBelliedSneech {public String toString() {return "Plain Bellied Sneech";}}private class StarBelliedSneech {public String toString() {return "Star Bellied Sneech";}}private class FilteredTreeModel extends DefaultTreeModel {private boolean mShowStarBelliedSneeches = true;private DefaultMutableTreeNode mRoot;FilteredTreeModel(DefaultMutableTreeNode root) {super(root);mRoot = root;}public Object getChild(Object parent, int index) {DefaultMutableTreeNode node = (DefaultMutableTreeNode) parent;if (mShowStarBelliedSneeches)return node.getChildAt(index);int pos = 0;for (int i = 0, cnt = 0; i < node.getChildCount(); i++) {if (((DefaultMutableTreeNode) node.getChildAt(i)).getUserObject() instanceof PlainBelliedSneech) {if (cnt++ == index) {pos = i;break;}}}return node.getChildAt(pos);}public int getChildCount(Object parent) {DefaultMutableTreeNode node = (DefaultMutableTreeNode) parent;if (mShowStarBelliedSneeches)return node.getChildCount();int childCount = 0;Enumeration children = node.children();while (children.hasMoreElements()) {if (((DefaultMutableTreeNode) children.nextElement()).getUserObject() instanceof PlainBelliedSneech)childCount++;}return childCount;}public boolean getShowStarBelliedSneeches() {return mShowStarBelliedSneeches;}public void setShowStarBelliedSneeches(boolean showStarBelliedSneeches) {if (showStarBelliedSneeches != mShowStarBelliedSneeches) {mShowStarBelliedSneeches = showStarBelliedSneeches;Object[] path = { mRoot };int[] childIndices = new int[root.getChildCount()];Object[] children = new Object[root.getChildCount()];for (int i = 0; i < root.getChildCount(); i++) {childIndices[i] = i;children[i] = root.getChildAt(i);}fireTreeStructureChanged(this, path, childIndices, children);}}}private FilteredTree() {final DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");DefaultMutableTreeNode parent;DefaultMutableTreeNode child;for (int i = 0; i < 2; i++) {parent = new DefaultMutableTreeNode(new PlainBelliedSneech());root.add(parent);for (int j = 0; j < 2; j++) {child = new DefaultMutableTreeNode(new StarBelliedSneech());parent.add(child);for (int k = 0; k < 2; k++)child.add(new DefaultMutableTreeNode(new PlainBelliedSneech()));}for (int j = 0; j < 2; j++)parent.add(new DefaultMutableTreeNode(new PlainBelliedSneech()));parent = new DefaultMutableTreeNode(new StarBelliedSneech());root.add(parent);for (int j = 0; j < 2; j++) {child = new DefaultMutableTreeNode(new PlainBelliedSneech());parent.add(child);for (int k = 0; k < 2; k++)child.add(new DefaultMutableTreeNode(new StarBelliedSneech()));}for (int j = 0; j < 2; j++)parent.add(new DefaultMutableTreeNode(new StarBelliedSneech()));}final FilteredTreeModel model = new FilteredTreeModel(root);JTree tree = new JTree(model);tree.setShowsRootHandles(true);tree.putClientProperty("JTree.lineStyle", "Angled");tree.setRootVisible(false);JScrollPane sp = new JScrollPane(tree);sp.setPreferredSize(new Dimension(200, 400));final JCheckBox check = new JCheckBox("Show Star Bellied Sneeches");check.setSelected(model.getShowStarBelliedSneeches());check.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {model.setShowStarBelliedSneeches(check.isSelected());}});JPanel panel = new JPanel(new BorderLayout());panel.add(check, BorderLayout.NORTH);panel.add(sp, BorderLayout.CENTER);JOptionPane.showOptionDialog(null, panel, "Sneeches on Beeches", JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE, null, new String[0], null);System.exit(0);}public static void main(String[] argv) {new FilteredTree();} }


轉載于:https://my.oschina.net/fbliujia/blog/73515

總結

以上是生活随笔為你收集整理的显示隐藏JTree节点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。