为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA中图形面板显示数据库中的信息

JAVA中图形面板显示数据库中的信息

橙子lovesun 2016-06-05 23:14:23
用JAVA编写代码,数据库中的学生信息表在图形界面中显示,图形界面做出来了,可是点击显示,却无法在界面中显示数据库中的信息,大神们,可以帮忙看看吗?做出的图形界面:当点击“显示”,下图数据库中的信息就在上面界面中显示出来图形界面没问题,可是不能讲以上信息显示,大神们可以帮我看看吗?代码:import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; public class SM extends JFrame implements ActionListener{// 学生信息管理   int width=600; //窗体的宽度       int height=400;//高度       JTable sTable;//       TableModel model;//表模型       JScrollPane scroll;//带滚动条的面板       Object[][] playerInfo;//存放表格中的数据       Object[] columnNames;//定义表格中的列名    JPanel p1 = new JPanel();    JPanel p = new JPanel();       Connection con = null;// conn获取链接    Statement stmt = null;// 通过链接创建Statement对象stmt,在通过stmt对象执行sql语句    ResultSet rs = null;// 定义rs接收executeQuery()方法返回的ResultSet对象,查询的数据就存放在rs对象中       //首先创建菜单栏       JMenuBar bar = new JMenuBar();       //创建文件菜单       JButton btnAdd = new JButton("增加");    JButton btnDelete = new JButton("删除");    JButton btnAlter = new JButton("修改");    JButton btnSearch = new JButton("查询");    JButton btnDisplay = new JButton("显示");    JButton back = new JButton ("返回上一级");       SM(){//构造函数        super("学生信息管理系统");            this.setSize(width, height);                 init();     this.setVisible(true); // 显示窗体     this.setDefaultCloseOperation(EXIT_ON_CLOSE);//设置窗体的关闭方式,点击小叉退出应用程序       }              public void init() {        add("South", p);      this.add("Center", p1);        //菜单栏上添加菜单        bar.add(btnDisplay);        bar.add(btnAdd);        bar.add(btnDelete);        bar.add(btnAlter);        bar.add(btnSearch);        bar.add(back);        //给窗体添加菜单栏        this.setJMenuBar(bar);        //设置窗体的位置       int screen_width = (int)this.getToolkit().getScreenSize().getWidth(); //得到屏幕的宽度    int screen_height = (int)this.getToolkit().getScreenSize().getHeight(); //得到屏幕的高度    this.setLocation((screen_width-width)/2, (screen_height-height)/2);   this.setResizable(false);//true,则使 窗体大小可变,否则大小不可变    this.setVisible(true);//true,则使  窗体 可见,否则隐藏 窗体  //为组件注册事件监听器 btnAdd.addActionListener(this); btnDelete.addActionListener(this); btnAlter.addActionListener(this); btnSearch.addActionListener(this); btnDisplay.addActionListener(this); back.addActionListener(this);       }       public void connDB() { // 连接数据库    try {    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");    } catch (ClassNotFoundException e) {    e.printStackTrace();    }    try {    con = DriverManager.getConnection("jdbc:sqlserver://localhost:1434;DatabaseName=DBstudent", "sa",    "1234567890");    stmt = con.createStatement();    } catch (SQLException e) {    e.printStackTrace();    }    }    public void closeDB() // 关闭连接    {    try {    stmt.close();    con.close();    } catch (SQLException e) {    e.printStackTrace();    }    }    /*  * 显示所有学生的信息所以定义一个ModelST类的集合List<ModelST>来接收返回值:所有信息  */    public void dispose() { int j=0; int i=0;//记录数据库中有好多组信息 String[] columnNames = { "学号", "姓名", "年龄", "性别", "院系" }; this.connDB();// 连接数据库 /*  * 调用stmt对象的executeQuery()方法,查询数据库的信息  * executeQuery()方法的返回只是ResultSet对象,定义rs接收返回的ResultSet对象 查询的数据就存放在rs对象中  */ try {  rs = stmt.executeQuery("select * from student order by sno"); List<ModelST> gs = new ArrayList<ModelST>(); ModelST g = null; /*  * rs对象的next()方法获取数据,若返回true证明对象中有数据 通过while循环将对象中的数据打印出啦。  */ while (rs.next()) { g = new ModelST(); g.setSno(rs.getInt("sno")); g.setDept(rs.getString("sd")); g.setName(rs.getString("sn")); g.setAge(rs.getInt("sa")); g.setSex(rs.getString("ss")); gs.add(g); i++; } playerInfo = new Object[i][5]; for (ModelST go : gs) { playerInfo[j][0] = g.getSno(); playerInfo[j][1] = g.getName(); playerInfo[j][2] =g.getAge(); playerInfo[j][3] = g.getSex(); playerInfo[j][4] = g.getDept(); j++; } //初始化表模型,利用子类DefaultTableModel生成TableModel接口对象 model=new DefaultTableModel(playerInfo, columnNames); sTable = new JTable(model);//初始化JTable //初始化带滚动条的面板 scroll = new JScrollPane(); scroll.getViewport().add(sTable); this.getContentPane().add(scroll); this.closeDB(); }catch (SQLException e) { e.printStackTrace(); } } public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == "显示") { /*JOptionPane.showConfirmDialog(null, "进入学生界面", "提示信息", JOptionPane.DEFAULT_OPTION, JOptionPane.OK_OPTION); */ this.dispose(); }if (e.getActionCommand() == "返回上一级") { int result = JOptionPane.showConfirmDialog(null, "您真的要退出系统吗?", "提示信息", JOptionPane.OK_CANCEL_OPTION);    if(result==JOptionPane.OK_OPTION)    {    System.exit(0); //退出系统    }    else    {    return;    } } } }
查看完整描述

1 回答

?
styledboy

TA贡献5条经验 获得超1个赞

jdbc

查看完整回答
反对 回复 2016-06-09
  • 1 回答
  • 4 关注
  • 4777 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信