📄 displayframe.java
字号:
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class DisplayFrame extends JFrame {
private JTable table;// 定义一个表控件;
private ResultSet rs;
Statement sql;
Connection con;
Icon icon4 = new ImageIcon("image/caidanx.GIF");
JButton sureBtn=new JButton("确定",icon4);
// 构件器
DisplayFrame(String query){
setTitle("学生信息");
JPanel topPanel = new JPanel();// 定义一个面版
topPanel.setLayout(new BorderLayout());// 把布局转换器设置成上下左右中的形式
table = new JTable();
Container c = getContentPane();// 定义一个容器
c.setLayout(new BorderLayout());// 设置容器的布局;
c.add(topPanel, BorderLayout.NORTH);// 将"topPanel"编辑框布置到 "NORTH"
c.add(table, BorderLayout.CENTER);// 将"table"编辑框布置到 "CENTER"
c.add(sureBtn,BorderLayout.SOUTH);
sureBtn.addActionListener(null);
getTable(query);
setSize(600,400);
setLocation(320,220);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
dispose();
}
});
setVisible(true);
validate();
}
private void getTable(String query)
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con=DriverManager.getConnection("jdbc:odbc:information","","");
sql=con.createStatement();
rs = sql.executeQuery(query);// 连接并查询数据库;
displayResultSet(rs);// 放到displayResultSet方法中处理,在表格中显示查询结果
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
public void displayResultSet(ResultSet rs)
throws SQLException
{
boolean moreRecords = rs.next(); // 定位到达第一条记录
// 如果没有记录,则提示一条消息
if (!moreRecords) {
JOptionPane.showMessageDialog(this,
"结果集中无记录");
setTitle("无记录");
return;
}
Vector columnHeads = new Vector();
Vector rows = new Vector();
try {
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
columnHeads.addElement(rsmd.getColumnName(i));
do {
rows.addElement(getNextRow(rs, rsmd));
} while (rs.next());
// 在表格中显示查询结果
table = new JTable(rows, columnHeads);
JScrollPane scroller = new JScrollPane(table);
Container c = getContentPane();
c.remove(1);
c.add(scroller, BorderLayout.CENTER);
// 刷新Table
c.validate();
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
private Vector getNextRow(ResultSet rs,
ResultSetMetaData rsmd)
throws SQLException
{
Vector currentRow = new Vector();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
currentRow.addElement(rs.getString(i));
// 返回一条记录
return currentRow;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -