📄 browsejframe.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 + -