JTREE使用例子—创建一个客户端界面
以下代码主要创建一个教师客户端界面。
界面图片:
/** 利用 JTree 类,你可以显示等级体系的数据。一个 JTree 对象并没有包含实际的数据;它只是提供了数据的一个视图。 */
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
// Frame 是带有标题和边界的顶层窗口。
public class TreeDemo1 extends JFrame{
private DefaultMutableTreeNode dmtnRoot = // 创建根节点
new DefaultMutableTreeNode( new MyNode("操作选项","0" ));
private DefaultMutableTreeNode dmtn1 = // 创建系统选项节点
new DefaultMutableTreeNode( new MyNode("系统选项","1" ));
private DefaultMutableTreeNode dmtn2 = // 创建学生信息管理节点
new DefaultMutableTreeNode( new MyNode("学生信息管理","2" ));
private DefaultMutableTreeNode dmtn3 = // 创建课程管理节点
new DefaultMutableTreeNode( new MyNode("课程管理","3" ));
private DefaultMutableTreeNode dmtn4 = // 创建班级设置节点
new DefaultMutableTreeNode( new MyNode("班级设置","4" ));
private DefaultMutableTreeNode dmtn11 = // 创建退出节点
new DefaultMutableTreeNode( new MyNode("退出","11" ));
private DefaultMutableTreeNode dmtn13 = // 创建密码修改节点
new DefaultMutableTreeNode( new MyNode("密码修改","13" ));
private DefaultMutableTreeNode dmtn21 = // 创建新生报到节点
new DefaultMutableTreeNode( new MyNode("新生报到","21" ));
private DefaultMutableTreeNode dmtn22 = // 创建学生信息查询节点
new DefaultMutableTreeNode( new MyNode("学生信息查询","22" ));
private DefaultMutableTreeNode dmtn221 = // 创建基本信息查询节点
new DefaultMutableTreeNode( new MyNode("基本信息查询","221" ));
private DefaultMutableTreeNode dmtn222 = // 创建成绩查询节点
new DefaultMutableTreeNode( new MyNode("成绩查询","222" ));
private DefaultMutableTreeNode dmtn31 = // 创建开课选项设置节点
new DefaultMutableTreeNode( new MyNode("开课选项设置","31" ));
private DefaultMutableTreeNode dmtn32 = // 创建课程成绩录入节点
new DefaultMutableTreeNode( new MyNode("课程成绩录入","32" ));
private DefaultMutableTreeNode dmtn34 = // 创建添加课程节点
new DefaultMutableTreeNode( new MyNode("添加课程","34" ));
private DefaultMutableTreeNode dmtn42 = // 创建增加班级节点
new DefaultMutableTreeNode( new MyNode("增加班级","42" ));
private DefaultTreeModel dtm = new DefaultTreeModel(dmtnRoot); // 创建根节点
private JTree jt = new JTree(dtm); // 创建树状列表控件
private JScrollPane jspz = new JScrollPane(jt); // 创建滚动窗口
/** 这段代码创建了DefaultMutableTreeNode 实例作为的节点。
* 创建完节点后,通过指定刚才创建的根节点为JTree 构造函数的参数,创建一棵树。
* 最后,将树放到滚动面板中,这是一个通常的策略,因为需要显示完一个树,而展开树需要另外比较大的空间。 */
private JPanel jpy = new JPanel(); // 创建面板
private JSplitPane jsp1 = // 创建分割窗口
new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspz,jpy);
// swing分割窗口控件JSplitPane,用来将窗口分割成两个部分。
public TreeDemo1(){ // 构造器
this .initialTree(); // 初始化树状列表控
this .initialFrame(); // 初始化主窗体
}
public void initialTree(){
// 将各个节点添加到树根节点
dmtnRoot.add(dmtn1);dmtnRoot.add(dmtn2);
dmtnRoot.add(dmtn3);dmtnRoot.add(dmtn4);
dmtn1.add(dmtn11);dmtn1.add(dmtn13);
dmtn2.add(dmtn21);dmtn2.add(dmtn22);
dmtn22.add(dmtn221);dmtn22.add(dmtn222);
dmtn3.add(dmtn31);dmtn3.add(dmtn32);dmtn3.add(dmtn34);
dmtn4.add(dmtn42);
}
public void initialFrame(){ // 设置窗体的标题、大小及其可见性
// 设置分割窗体的位置并添加到主窗体
this .add(jsp1);
jsp1.setDividerLocation( 200 );
jsp1.setDividerSize( 4); // 设置分割窗体的宽度
Image image = new ImageIcon("ico.gif").getImage(); // 加载窗体图标对象
// 设置窗体的图标和标题
this .setIconImage(image);
this .setTitle("教师客户端" );
Dimension screenSize = // 得到屏幕的Dimension对象
Toolkit.getDefaultToolkit().getScreenSize();
int centerX = screenSize.width/2; // 计算屏幕宽度中间像素
int centerY = screenSize.height/2; // 计算屏幕高度中间像素
int w = 900; // 本窗体宽度
int h = 650; // 本窗体高度
this .setBounds(centerX-w/2,centerY-h/2,w,h); // 设置窗体出现在屏幕中央
this .setVisible( true ); // 设置窗体可见性
this .setExtendedState(JFrame.MAXIMIZED_BOTH); // 窗体全屏
}
class MyNode{ // 自定义的初始化树节点的数据对象的类
private String values; // 声明values属性
private String id; // 用于确定节点的id属性
public MyNode(String values,String id){ // 构造器
this .values = values; // 设置values的值
this .id = id; // 设置id的值
}
public String toString(){ // 重写toString方法
return this .values;
}
public String getId(){ // Id的get方法
return this .id;
}
}
/** DefaultMutableTreeNode 构造函数的参数是一个用户自定义的类对象,
* 它包含或指向了关联树节点的数据。这个用户对象可以是一个字符串,或者是一个自定义的类。
* 如果它实现了一个自定义对象,你应该要重新实现覆盖他的 toString 方法,
* 这样他才能返回对应字符串作为节点显示的字符串。
* JTree 默认情况下,每个节点都是用 toString 的返回值作为显示。
* 所以,让 toString 返回一些有意义的值是很重要的。 */
public static void main(String args[]){
new TreeDemo1();
}
}
/** 你可以调用 Jtree 的构造函数创建一棵树,指定一个实现了 TreeNode 的类作为参数。
* 你应该尽量把这棵树放到一个滚动面板中( scroll pane ),
* 这样树就不会占用太大的空间。
* */
分类: Java图形界面
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于JTREE使用例子—创建一个客户端界面的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did47542