大神们求救啊!危在旦夕

linhu007 2013-11-20 09:31:48
本人做了一个选课系统,用java的GUI编程实现的,现在遇到一个难题就是如何以树状结构显示班级,班级里面的的成员做为子树,并且班级和班级成员可以动态从数据库中获取。求帮忙啊,万分感激
...全文
314 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
linhu007 2013-11-20
  • 打赏
  • 举报
回复
错误主要是那个树结点设置里面,功能是想这样的实现的,比如我添加学生,提交上去,然后在树模型中可以实现出现的班级或者已经在已经添加的班级里面显示出学生名字的子结点,就这样可以了
linhu007 2013-11-20
  • 打赏
  • 举报
回复
改了,只是好多错误,你能帮我看看么? package cn.jxau.ruanjian.CS; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.Image; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JFrame; 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; import cn.edu.jxau.ruanjian1201.Dao; import com.jxau.ruanjianxy1201.DeleteECT; import com.jxau.ruanjianxy1201.DeleteStudent; import com.jxau.ruanjianxy1201.Query; import com.jxau.ruanjianxy1201.addECT; import com.jxau.ruanjianxy1201.addchooseClass; import com.jxau.ruanjianxy1201.addclass; import com.jxau.ruanjianxy1201.addstudent; import com.jxau.ruanjianxy1201.deletechooseClass; import com.jxau.ruanjianxy1201.deleteclass; public class Manager extends JFrame implements ActionListener { // JTree tree; //DefaultTreeModel treeModel; private JTree tree; ResultSet rs1; ResultSet rs2; private DefaultTreeModel philosophers; private DefaultMutableTreeNode rootNode; JScrollPane jp; JPanel contain; protected Menu student, grade, teacher, mQuery,chooseclass,classmanagement; protected MenuItem student1,student2, grade1, teacher1, teacher2,Query1,addchooseclass,deletechooseclass,addclass,deleteclass; protected MenuBar mb; public Manager() { super("管理员界面"); // 菜单项 //学生 student = new Menu("学生管理"); student1 = new MenuItem("添加学生"); student2 = new MenuItem("删除学生"); student.add(student1); student.add(student2); //老师 teacher = new Menu("老师管理"); teacher1 = new MenuItem("添加选修课老师"); teacher2 = new MenuItem("删除选修课老师"); teacher.add(teacher2); teacher.add(teacher1); //选修课班级 chooseclass = new Menu("修课班级管理"); addchooseclass = new MenuItem("添加选修班级"); deletechooseclass = new MenuItem("删除选修课"); chooseclass.add(addchooseclass); chooseclass.add(deletechooseclass); //班级管理 classmanagement = new Menu("班级管理"); addclass = new MenuItem("添加班级"); deleteclass = new MenuItem("删除班级"); classmanagement.add(addclass); classmanagement.add(deleteclass); //查询 mQuery = new Menu("查询"); Query1 = new MenuItem("查询学生"); mQuery.add(Query1); //菜单条设置 mb = new MenuBar(); mb.add(student); mb.add(teacher); mb.add(chooseclass); mb.add(classmanagement); mb.add(mQuery); //绑定监听器 student1.addActionListener(this); student2.addActionListener(this); teacher1.addActionListener(this); teacher2.addActionListener(this); addchooseclass.addActionListener(this); deletechooseclass.addActionListener(this); addclass.addActionListener(this); deleteclass.addActionListener(this); Query1.addActionListener(this); //界面设置 JPanel inputPanel = new JPanel(); // setVisible(true); // Container container = getContentPane(); jp = new JScrollPane(tree); add(jp, BorderLayout.SOUTH); inputPanel.setSize(200, 300); add(inputPanel, BorderLayout.CENTER); inputPanel.setVisible(true); setResizable(false); setLocation(400, 100); setSize(330, 600); setLayout(null); setVisible(true); Image icon = Toolkit.getDefaultToolkit().getImage( "D:\\Myeclipse\\CS\\农大校徽.jpg"); this.setIconImage(icon); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //树节点设置 DefaultMutableTreeNode philosophersNode = getPhilosopherTree(); philosophers = new DefaultTreeModel(philosophersNode); tree = new JTree(philosophers); addclass.addActionListener(new ActionListener() { public void actionPerformed1(ActionEvent event) { addPhilosopher(); } private void addPhilosopher() { // TODO Auto-generated method stub DefaultMutableTreeNode parent = getSelectedNode(); if (parent == null) { JOptionPane.showMessageDialog(Manager.this, "请先选择一个区域", "Error", JOptionPane.ERROR_MESSAGE); return; } String sparent = parent.toString(); int i; if (sparent.equals("专业班级")) { String name = JOptionPane.showInputDialog(Manager.this, "输入名字:"); // System.out.println(name); if (name == null) { return; } else { i = Integer.parseInt(name); philosophers.insertNodeInto(new DefaultMutableTreeNode(name), parent, parent.getChildCount()); String sql = "insert into tb_SpeClass(SClassNo) values(" + i + ")"; // System.out.println(sql); Dao.executeUpdate(sql); } } else { SDialog dia = new SDialog(this); dia.setVisible(true); dia.setLocationRelativeTo(null); } } private DefaultMutableTreeNode getSelectedNode() { // TODO Auto-generated method stub return null; } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } }); deleteclass.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { removeSelectedPhilosopher(); } private void removeSelectedPhilosopher() { // TODO Auto-generated method stub } }); } private DefaultMutableTreeNode getPhilosopherTree() { // TODO Auto-generated method stub DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("专业班级"); String sql = "select SClassNo from tb_SpeClass"; rs1 = Dao.executeQuery(sql); String s; try { while (rs1.next()) { s = rs1.getString("SClassNo"); String sql2 = "select SName from tb_student where SClassNo = '" + s + "'"; DefaultMutableTreeNode ban1 = new DefaultMutableTreeNode(s); rootNode.add(ban1); rs2 = Dao.executeQuery(sql2); while (rs2.next()) { ban1.add(new DefaultMutableTreeNode(rs2.getString("SName"))); } } } catch (SQLException e) { e.printStackTrace(); } return null; } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if (e.getSource() == Query1) { System.out.println("你好啊"); new Query(); }else if(e.getSource()==student1){ new addstudent(); }else if(e.getSource()==student2){ new DeleteStudent(); }else if(e.getSource()==teacher1){ new addECT(); }else if(e.getSource()==teacher2){ new DeleteECT(); }else if(e.getSource()==addchooseclass){ new addchooseClass(); }else if(e.getSource()==deletechooseclass){ new deletechooseClass(); }else if(e.getSource()==addclass){ new addclass(); System.out.println("添加班级"); }else if(e.getSource()==deleteclass){ new deleteclass(); System.out.println("删除班级"); } } }
teemai 2013-11-20
  • 打赏
  • 举报
回复

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;

public class SimpleTree extends JFrame {

JTree tree;
DefaultTreeModel treeModel;

public SimpleTree() {
super("Tree Test Example");
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public void init() {
// Build up a bunch of TreeNodes. We use DefaultMutableTreeNode because
// the
// DefaultTreeModel can use it to build a complete tree.
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
DefaultMutableTreeNode subroot = new DefaultMutableTreeNode("SubRoot");
DefaultMutableTreeNode leaf1 = new DefaultMutableTreeNode("Leaf 1");
DefaultMutableTreeNode leaf2 = new DefaultMutableTreeNode("Leaf 2");

// Build our tree model starting at the root node, and then make a JTree
// out
// of it.
treeModel = new DefaultTreeModel(root);
tree = new JTree(treeModel);

// Build the tree up from the nodes we created.
treeModel.insertNodeInto(subroot, root, 0);
// Or, more succinctly:
subroot.add(leaf1);
root.add(leaf2);

// Display it.
getContentPane().add(tree, BorderLayout.CENTER);

final JLabel messageLabel = new JLabel("Nothing selected.");
add(messageLabel, BorderLayout.SOUTH);

// Add our selection listener and have it report to
// our messageLabel.
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent tse) {
TreePath tp = tse.getNewLeadSelectionPath();
messageLabel.setText("Selected: " + tp.getLastPathComponent());
}
});
}

public static void main(String args[]) {
SimpleTree tt = new SimpleTree();
tt.init();
tt.setVisible(true);
}
}


之前回答的代码,你参考下自己改改吧。

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧