⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 browsejframe.java

📁 分类浏览学生基本信息表;;哈哈
💻 JAVA
字号:
//实验11 按省份分类浏览student数据库中的stuinfo表。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.sql.*;

public class BrowseJFrame extends JFrame implements ListSelectionListener
{
    private DataBaseOperation dboper;                      //操纵数据库的对象
    private String table;                                  //数据库中的表名
    private String[] columnNames;                          //指定表中所有列的中文标题
    private String list_column;                            //表中的列

    private JList list_group;                              //列表框,显示分类列的不重复值
    private JTable table_team;                             //表格组件,显示数据库中指定的内容
    private DefaultTableModel dataModel;                   //JTable使用的模式

    public BrowseJFrame(DataBaseOperation dboper, String table, String[] columnNames, String list_column)                   //构造方法,指定表名
    {
        this.dboper = dboper;                               
        this.table = table;
        this.columnNames = columnNames;
        this.list_column = list_column;

        this.setSize(480,320);                             //界面设计
        this.setLocation(300,240);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
                
        JSplitPane splitter_h = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);   //分割窗格,水平分割
        this.add(splitter_h);
        try
        {
            String[] groupdata = dboper.selectDistinct(table, list_column);   //获得指定列不重复的值
            this.list_group = new JList(groupdata); 
            this.list_group.setSelectedIndex(1);               //选中第1项
            splitter_h.add(new JScrollPane(this.list_group));
            this.list_group.addListSelectionListener(this);    //注册选择事件监听器

            dataModel = new DefaultTableModel(columnNames,0);  //默认表格模式
            this.valueChanged(null);                           //执行列表框的选择事件处理程序

            this.table_team = new JTable(dataModel); 
            this.table_team.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            splitter_h.add(new JScrollPane(table_team));
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        this.setVisible(true);
    }

    public void valueChanged(ListSelectionEvent e)         //在列表框中选择数据项时触发
    {                                                      //在表中查询指定组的数据,将数据结果集显示在表格组件中
        String selecteditem = (String)list_group.getSelectedValue();
        String conditions = this.list_column + " = '"+selecteditem+"'";
        try
        {
            dboper.select(this.table, conditions, this.dataModel);  //查询并显示指定组的数据结果集
        }
        catch(SQLException sqle)
        {
            sqle.printStackTrace();
        }

    }
}

class BrowseJFrame_Stuinfo
{
    public static void main(String args[])
    {
        String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";                 //指定SQL Server JDBC驱动程序
        String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=student";  //指定SQL Server数据库student的URL
        String user = "sa";                                //指定用户名
        String password = "yeheya";                        //指定用户口令
        try
        {
            DataBaseOperation dboper = new DataBaseOperation(driver,url,user,password);
            String[] columnNames={"学号","姓名","性别","省份","地区","出生年月","民族","团员","系别"};
            BrowseJFrame stuinfo_browse = new BrowseJFrame(dboper,"stuinfo", columnNames, "province");
            stuinfo_browse.setTitle("学生基本信息表");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -