`

JTree 与Swing 的综合应用

 
阅读更多

1. Swing 中JTree 的使用

 

    结果为

 

    结果

 

 

package org.kjcx.liuqing.swing.test;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.filechooser.FileFilter;
import javax.swing.tree.DefaultMutableTreeNode;

/**
 * 
 * @author LiuQing
 * @version 1.0
 * @see 
 * @date 2010-8-10上午09:28:20
 */
public class UserManagerUI extends JFrame implements TreeSelectionListener{
	
	private static final long serialVersionUID = 4228671843583729084L;

	private JTextArea evnContext;
	
	private JScrollPane evnPane;
	
	private JTextField enterInfo;
	
	private JButton sendButton;
	
	private JPanel southPanel;
	
	private JTree tree;
	
	private JScrollPane treePane;
	
	private JSplitPane sp;
	
	private JToolBar toolBar;
	
	private JButton add;
	
	private JMenuBar menuBar;
	
	private JMenu fileMenu;
	
	private JMenuItem openItem,runningItem,closeItem;
	
	private JSeparator fileSp;
	
	private JFileChooser chooser;
	
	
	public UserManagerUI() {
		
		
		menuBar = new JMenuBar();
		fileMenu = new JMenu("File");
		openItem = new JMenuItem("open");
		runningItem = new JMenuItem("running");
		closeItem = new JMenuItem("close");
		fileSp = new JSeparator();
		openItem.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				chooser.showOpenDialog(openItem);
			}
			
		});
		
		fileMenu.add(openItem);
		fileMenu.add(runningItem);
		fileMenu.add(fileSp);
		fileMenu.add(closeItem);
		//文件选择的使用
		this.chooser = new JFileChooser();
		chooser.addChoosableFileFilter(new FileFilter(){
			
			@Override
			public boolean accept(File f) {
				if (f.isDirectory()) {
					return true;
				}
				return f.getName().endsWith(".class") 
					|| f.getName().endsWith(".jpg") 
					|| f.getName().endsWith(".gif");
			}

			@Override
			public String getDescription() {
				return "*.class *.gif *.jpg";
			}
			
		});
		
		menuBar.add(fileMenu);
		this.setJMenuBar(menuBar);
		closeItem.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				System.exit(-1);
			}
			
		});
		
		toolBar = new JToolBar();
		add = new JButton("addition");
		toolBar.add(add);
		
		this.evnContext = new JTextArea();
		this.evnPane = new JScrollPane(evnContext);
		this.enterInfo = new JTextField(10);
		this.sendButton = new JButton("send Message");
		this.southPanel = new JPanel();
		NodeTree node = new NodeTree("1","用户管理");
		NodeTree node2 = new NodeTree("2","用户类型");
		NodeTree node3 = new NodeTree("3","产品类型");
		NodeTree node4 = new NodeTree("4","订单信息");
		DefaultMutableTreeNode a_node = new DefaultMutableTreeNode(node);
		DefaultMutableTreeNode a_node2 = new DefaultMutableTreeNode(node2);
		DefaultMutableTreeNode a_node3 = new DefaultMutableTreeNode(node3);
		DefaultMutableTreeNode a_node4 = new DefaultMutableTreeNode(node4);
		
		a_node.add(a_node2);
		a_node.add(a_node3);
		a_node3.add(a_node4);
		tree = new JTree(a_node);
		tree.addTreeSelectionListener(this);
		treePane = new JScrollPane(tree);
		this.sp =  new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,treePane,evnPane);
		this.sp.setOneTouchExpandable(true);
		southPanel.add(enterInfo);
		southPanel.add(sendButton);
		
		this.add(sp);
		this.add(toolBar,BorderLayout.NORTH);
		this.add(southPanel,BorderLayout.SOUTH);
		
		this.setVisible(true);
		this.setSize(400,400);
		this.setTitle("QQ");
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
	}
	
	public static void main(String args[]) throws Exception {
		UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		new UserManagerUI();
	}
	
	/**
	 * 
	 * @author LiuQing
	 * @version 1.0
	 * @see 
	 * @date 2010-8-15上午09:34:25
	 */
	class NodeTree {
		
		private String id;
		
		private String name;
		
		private NodeTree parentNode;

		public NodeTree() {
			super();
		}

		public NodeTree(String id, String name) {
			super();
			this.id = id;
			this.name = name;
		}
		
		public String getId() {
			return id;
		}

		public void setId(String id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public NodeTree getParentNode() {
			return parentNode;
		}

		public void setParentNode(NodeTree parentNode) {
			this.parentNode = parentNode;
		}

		@Override
		public String toString() {
			return name;
		}
		
	}

	/**
	 * 
	 */
	public void valueChanged(TreeSelectionEvent e) {
		//获得树的结点路径
	    DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)
	    				e.getNewLeadSelectionPath().getLastPathComponent();
	    //获得用户对应的结点对象
	    NodeTree nodeTree = (NodeTree)treeNode.getUserObject();
	    this.evnContext.setText(nodeTree.getName());
	}

}
  • 大小: 19.2 KB
分享到:
评论

相关推荐

    Java Swing组件综合练习

    在这个“Java Swing组件综合练习”中,我们将深入探讨几个核心组件的使用,包括表格(Table)、树(Tree)、按钮(Button)以及菜单(Menu)和工具条(ToolBar)。 首先,让我们来看看表格组件(JTable)。JTable是...

    swing 综合资料包

    这个综合资料包涵盖了Swing的各种组件、布局管理器、事件处理、外观(LookAndFeel)以及高级特性等多个方面的内容。以下是关于Swing的一些关键知识点的详细说明: 1. **Swing组件**: - `JFrame`:Swing中的顶级...

    Java Swing图形界面开发与案例详解

    20. 实战项目:通过实际案例,综合应用前面所学知识。 通过学习这407页的教程,开发者将能够熟练地构建出功能丰富、用户友好的Java桌面应用,充分掌握Java Swing的核心技术和最佳实践。无论是初学者还是有一定经验...

    Java Swing中的表格(JTable)和树(JTree)组件使用实例

    在Java Swing中,`JTable`和`JTree`是两个重要的组件,它们分别用于展示数据的表格形式和树形结构。下面将详细介绍这两个组件的基本概念、常用方法以及实例。 ### `JTable`组件 `JTable`是Java Swing GUI库中的一...

    Java+Swing图形界面开发与案例详解》实例代码

    在"Java+Swing图形界面开发与案例详解"这本书中,作者深入浅出地介绍了如何使用Swing来设计和实现GUI应用。 该书的实例代码包含了从第一讲到第八讲的源码,逐步引导读者从基础到进阶掌握Swing的使用。以下是这些讲...

    关于swing和swt的小练习

    在Java编程领域,Swing...综合这个压缩包中的练习,开发者可以通过运行和分析代码,了解Swing和SWT在实际项目中的应用,掌握组件的用法,学习布局设计,以及如何处理用户事件。这对于提高Java GUI编程技能非常有帮助。

    Java+Swing图形界面开发与案例详解pdf+源码

    10. **综合案例**: 资源中包含的综合例子程序可能涵盖了Swing的多个方面,从基础组件的使用到复杂布局的实现,再到事件处理和数据展示,这有助于读者更好地理解和掌握Swing的实战应用。 通过深入学习本资源,无论是...

    swing练习1.zip

    Swing组件包括按钮、文本框、标签、滚动面板、菜单等,这些组件可以帮助开发者构建出功能完善的桌面应用程序。Swing使用了事件驱动模型,即用户与GUI元素交互时会触发相应的事件,程序员可以注册事件监听器来处理...

    Swing样式大全(全56种经典)

    10. 综合布局管理:Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout等,用于控制组件在容器内的排列方式。 11. 自定义组件:开发者还可以通过继承已有的Swing组件并重写其方法...

    java swing写的资源管理器

    这个应用具有左右两栏的布局,能够方便地展示和管理文件与目录。 左栏通常会使用JTree组件,它是一个树形控件,能够层次化地展示文件系统结构。JTree允许用户展开和折叠目录,通过单击节点来选择文件或目录。开发者...

    swing project酒店数据管理客户端

    总结来说,“swing project酒店数据管理客户端”是一个综合性的项目,涉及到GUI设计、数据库交互、用户输入验证等多个方面,展示了Swing在开发桌面应用程序中的强大功能。通过良好的设计和实现,该客户端能为酒店...

    基于java swing 的文件管理器.zip

    在开发“基于Java Swing的文件管理器”时,开发者需要综合运用这些知识点,创建一个功能完备、用户友好的文件管理系统。通过实践这个项目,可以深入理解和掌握Java GUI编程,同时提升对文件操作和多线程编程的理解。

    广陵学院图书馆管理系统

    在这个系统中,开发者运用了Swing控件来构建用户界面,树状列表展示图书分类,正则表达式处理数据验证,以及卡片布局(Card Layout)优化界面布局等多种编程技巧。 1. **Swing控件**:Swing是Java的一个图形用户...

    JAVA图形用户界面

    总的来说,理解和熟练运用AWT和Swing对于开发Java GUI应用程序至关重要。从组件的选择、布局的管理到事件的处理,每一个环节都需要细心设计和调试,才能创造出用户友好、功能完善的图形用户界面。同时,了解Applet和...

    级联树形菜单

    级联树形菜单在软件开发中是一个常见的交互元素,...总之,实现级联树形菜单涉及数据结构、事件处理和界面设计等多个方面,需要综合运用Java的基础知识。通过不断实践和优化,可以构建出高效且用户友好的树形菜单系统。

    java图形界面编程

    1. Swing组件:Swing组件包括JButton、JLabel、JTextField、JTextArea、JCheckBox、JRadioButton、JComboBox、JList、JTable、JTree、JPanels等。Swing还引入了JFrame、JDialog、JOptionPane等窗口类。 2. 复杂组件...

    \Java基础类 \Java基础类

    Java Foundation Classes)是Sun Microsystems为提升Java GUI功能而引入的一个综合框架,它包含了多个API子集,包括AWT(Abstract Window Toolkit)、Java2D、Accessibility、Drag & Drop以及Swing。 **AWT...

    综合设计报告-小型图书管理系统.doc

    【综合设计报告-小型图书管理系统】是一份详细阐述如何构建一个小型图书管理系统的报告,旨在让学生通过实践掌握SQL命令、Swing图形用户界面编程、Java与数据库连接技术以及数据库信息的存取和查询。报告中明确了...

    Java综合性实验报告 (3).docx

    【Java综合性实验报告概述】 本实验报告主要围绕一个Java编程任务展开,即设计并实现一个源代码自动转换程序,能够将Java和C源程序代码文件转换为HTML格式,便于阅读和分享。该程序应具备GUI界面,允许用户选择...

    Java目录树控件

    在Java编程中,构建一个目录树控件是常见的需求,特别是在开发桌面应用或者需要图形化展示文件系统结构的场景。这个“Java目录树控件”就是这样一个功能组件,它能够帮助用户直观地查看和操作文件系统的目录树结构,...

Global site tag (gtag.js) - Google Analytics