以下代码主要创建一个教师客户端界面。
界面图片:
/**利用 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图形界面