⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.java

📁 swing 教程,与大家分享一下,哈哈,希望大家多多指教
💻 JAVA
字号:
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;

public class Test extends JFrame {
	JTree tree = new JTree();
	DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
	TreeSelectionModel selectionModel = tree.getSelectionModel();

	JButton removeButton = new JButton("Remove selected node");
	JButton addButton = new JButton("Add node");

	public Test() {
		Container contentPane = getContentPane();

		selectionModel.setSelectionMode(
						TreeSelectionModel.SINGLE_TREE_SELECTION);

		contentPane.add(new ControlPanel(), BorderLayout.NORTH);
		contentPane.add(tree, BorderLayout.CENTER);

		tree.addTreeSelectionListener(
									new TreeSelectionListener() {
			public void valueChanged(TreeSelectionEvent e) {
				TreePath path = e.getNewLeadSelectionPath();
				boolean nodesAreSelected = (path != null);

				addButton.setEnabled(nodesAreSelected);
				removeButton.setEnabled(nodesAreSelected);
			}
		});
		model.addTreeModelListener(new TreeModelListener() {
			public void treeNodesInserted(TreeModelEvent e) {
				showInsertionOrRemoval(e, " added to ");
			}
			public void treeNodesRemoved(TreeModelEvent e) {
				showInsertionOrRemoval(e, " removed from ");
			}
			private void showInsertionOrRemoval(TreeModelEvent e,
												String s) {
				Object[] parentPath = e.getPath();
				int[] indexes = e.getChildIndices();
				Object[] children = e.getChildren();
				Object parent = parentPath[parentPath.length-1];

				JOptionPane.showMessageDialog(Test.this,
						   "Node \"" + children[0].toString() + 
						   "\"" + s + parent.toString() + 
						   " at index " + indexes[0],
						   "Node Added or Removed",
						   JOptionPane.INFORMATION_MESSAGE);
			}
			public void treeNodesChanged(TreeModelEvent e) {}
			public void treeStructureChanged(TreeModelEvent e) {}
		});
	}
	class ControlPanel extends JPanel {
		public ControlPanel() {
			addButton.setEnabled(false);
			removeButton.setEnabled(false);

			add(addButton);
			add(removeButton);

			addButton.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					TreePath path = 
							 selectionModel.getSelectionPath();

					MutableTreeNode parent, node = 
							(MutableTreeNode)path.getLastPathComponent();

					if(path.getPathCount() > 1)
						parent = (MutableTreeNode)node.getParent();
					else
						parent = (MutableTreeNode)node;

					int index = parent.getIndex(node) + 1;

					String s = JOptionPane.showInputDialog(
								Test.this,
							    "Enter a name for the new node:",
								"New Tree Node",
								JOptionPane.QUESTION_MESSAGE);

					MutableTreeNode newNode = 
									new DefaultMutableTreeNode(s);

					model.insertNodeInto(newNode, parent, index);
				}
			});
			removeButton.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					TreePath path = 
							 selectionModel.getSelectionPath();

					if(path.getPathCount() == 1) {
						JOptionPane.showMessageDialog(ControlPanel.this,
										"Can't remove root node!");
						return;
					}

					MutableTreeNode node = 
					 (MutableTreeNode)path.getLastPathComponent();

					model.removeNodeFromParent(node);
				}
			});
		}
	}
	public static void main(String args[]) {
		GraphicJavaApplication.launch(new Test(), 
					"Tree Model Example",300,300,450,300);
	}
}
class GraphicJavaApplication extends WindowAdapter {
	public static void launch(final JFrame f, String title,
							  final int x, final int y, 
							  final int w, int h) {
		f.setTitle(title);
		f.setBounds(x,y,w,h);
		f.setVisible(true);

		f.setDefaultCloseOperation(
							WindowConstants.DISPOSE_ON_CLOSE);

		f.addWindowListener(new WindowAdapter() {
			public void windowClosed(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -