📄 inquestcourse.java
字号:
//package myprojects.main;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class InquestCourse extends JDialog
{
private Connection queryconnection;
private Statement commoditystatement;
private ResultSet commodityresultSet;
private ResultSetMetaData commodityrsMetaData;
//GUI变量定义
private JFrame parent;
private JPanel labelPanel, tablePanel;//定义两块面板对象
//labelPanel用来放标签,fieldsPanel用来放文本区
private String labels = "请输入课程号:";
private JTable table;
private JTable commoditytable;
private JButton submitQuery;
private JButton cancelQuery;
JTextField 课程号;
public InquestCourse()
{
String url = "jdbc:odbc:xkxt";
String username = "sa";
String password = "";
//加载驱动程序以连接数据库
try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
queryconnection = DriverManager.getConnection( url, username, password );
}
//捕获加载驱动程序异常
catch ( ClassNotFoundException cnfex )
{
System.err.println("装载 JDBC/ODBC 驱动程序失败。" );
cnfex.printStackTrace();
System.exit( 1 ); // terminate program
}
//捕获连接数据库异常
catch ( SQLException sqlex )
{
System.err.println( "无法连接数据库" );
sqlex.printStackTrace();
System.exit( 1 ); // terminate program
}
submitQuery = new JButton( "查 询" );
submitQuery.setPreferredSize(new Dimension(120, 25));
submitQuery.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
getTable();
}
}
);
cancelQuery = new JButton( "返 回" );
cancelQuery.setPreferredSize(new Dimension(120, 25));
cancelQuery.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
setVisible(false);
dispose();
}
}
);
GridBagConstraints constraints = new GridBagConstraints();
课程号 = new JTextField();
课程号.setPreferredSize(new Dimension(120, 25));
labelPanel = new JPanel();
labelPanel.setLayout( new GridBagLayout());
constraints.weightx = 100;
constraints.weighty = 100;
constraints.gridx = 0;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
labelPanel.add(new JLabel( labels), constraints);
constraints.gridx =1;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
labelPanel.add(课程号, constraints);
constraints.gridx =2;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
labelPanel.add(submitQuery, constraints);
constraints.gridx =3;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
labelPanel.add(cancelQuery, constraints);
table = new JTable();
commoditytable = new JTable();
JScrollPane scroller = new JScrollPane();
//scroller.setLayout( new BorderLayout() );
scroller.setPreferredSize(new Dimension(100, 50));
//scroller.setSize(800, 20);
JScrollPane commodityscroller = new JScrollPane( commoditytable );
tablePanel = new JPanel();
tablePanel.setLayout( new BorderLayout() );
tablePanel.setPreferredSize(new Dimension(100, 20));
tablePanel.setBorder(BorderFactory.createEtchedBorder());
tablePanel.add( scroller ,BorderLayout.CENTER);
tablePanel.add( commodityscroller ,BorderLayout.SOUTH);
Container c = getContentPane();
setTitle("学生选课查询窗口");
c.setLayout( new BorderLayout());
//将"topPanel"编辑框布置到 "NORTH"
c.add( labelPanel ,BorderLayout.NORTH);
c.add( tablePanel ,BorderLayout.CENTER);
//c.add( commoditytable ,BorderLayout.SOUTH);
getTable();
setSize( 500, 300 );
//setResizable(false);
setLocation(200,100);
//show();
}
private void getTable()
{
try {
//执行SQL语句
String commodityquery;
if (课程号.getText().equals( "" ) )
{
commodityquery = "SELECT * FROM 课程信息表";//列出所有的课程信息
}
else
{
commodityquery = "SELECT * FROM 课程信息表 WHERE 课程号="+
课程号.getText()+"";//列出查询的课程信息
}
commoditystatement = queryconnection.createStatement();
commodityresultSet = commoditystatement.executeQuery( commodityquery );
//在表格中显示查询结果
displayResultSet( commodityresultSet);
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
}
}
private void displayResultSet( ResultSet commodityrs )throws SQLException
{
//定位到达第一条记录
boolean commoditymoreRecords = commodityrs.next();
//如果没有记录,则提示一条消息
if ( ! commoditymoreRecords )
{
JOptionPane.showMessageDialog( this,"无此学生选课记录" );
//setTitle( "无记录显示" );
}
Vector commoditycolumnHeads = new Vector();
Vector commodityrows = new Vector();
try
{
ResultSetMetaData commodityrsmd = commodityrs.getMetaData();
//在表格中显示查询结果
table = new JTable( commodityrows, commoditycolumnHeads );
JScrollPane scroller = new JScrollPane( table );
scroller.setPreferredSize(new Dimension(500, 50));
Container c = getContentPane();
c.remove(1);
tablePanel = new JPanel();
tablePanel.setLayout( new BorderLayout() );
tablePanel.add( scroller, BorderLayout.NORTH );
if( commoditymoreRecords)
{
for ( int i = 1; i <= commodityrsmd.getColumnCount(); ++i )
{
commoditycolumnHeads.addElement( commodityrsmd.getColumnName( i ) );
}
do
{
commodityrows.addElement( getNextRow( commodityrs, commodityrsmd ) );
} while ( commodityrs.next() );
commoditytable = new JTable( commodityrows, commoditycolumnHeads );
JScrollPane commodityscroller = new JScrollPane( commoditytable );
commodityscroller.setPreferredSize(new Dimension(500, 200));
tablePanel.add( commodityscroller, BorderLayout.CENTER );
}
else
{
for ( int i = 1; i <= commodityrsmd.getColumnCount(); ++i )
{
commoditycolumnHeads.addElement( commodityrsmd.getColumnName( i ) );
}
commoditytable = new JTable(6,0);
JScrollPane commodityscroller = new JScrollPane();
commodityscroller.setPreferredSize(new Dimension(500, 200));
tablePanel.add( commodityscroller, BorderLayout.CENTER );
}
c.add(tablePanel,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 + -