📄 certainclassframe.java
字号:
import javax.swing.*;
import java.sql.*;
import java.util.Vector;
import java.awt.*;
import java.awt.event.*;
import javax.swing.tree.*;
public class CertainClassFrame extends JFrame {
public CertainClassFrame(Connection connect){
setTitle("CertainClassFrame");
jl_class=new JLabel("select a class");
jl_term=new JLabel("select a term");
jl_course=new JLabel("select a course");
jl_ave=new JLabel("average:");
jl_pass=new JLabel("pass rate");
con=connect;
getValues();
JPanel jp1=new JPanel(new GridLayout(2,2));
jp1.add(jl_class);jp1.add(aclass);
jp1.add(jl_term);jp1.add(aterm);
jp2=new JPanel();
jtable=new JTable();
jp2.add(jtable);
Container c=getContentPane();
c.setLayout(new BorderLayout());
c.add(jp1,BorderLayout.NORTH);
c.add(jp2,BorderLayout.CENTER);
////////添加事件响应
aterm.addActionListener(new ComboBoxListener());
//aclass.addActionListener(new ComboBoxListener());
}
void getValues(){
try{
Statement st=con.createStatement();
String sql="select * from class";
ResultSet rs=st.executeQuery(sql);
Vector vc=new Vector();
while(rs.next()){
vc.addElement(rs.getString(1));
}
aclass=new JComboBox(vc);
rs.close();
st.close();
Statement stm=con.createStatement();
sql="select distinct term from score";
rs=stm.executeQuery(sql);
vc=new Vector();
while(rs.next()){
vc.addElement(rs.getString(1));
}
aterm=new JComboBox(vc);
rs.close();
stm.close();
vc=new Vector();
vc.addElement("eng");vc.addElement("math");vc.addElement("db");vc.addElement("java");
}catch(SQLException e1){
JOptionPane.showMessageDialog(null, e1.getMessage());
}
}
////////////////////COMBOBOX 事件监听
class ComboBoxListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
try{
String sql="select student.sno,sname,class.cno,cname,eng,math,db,java,term from student,score,class where class.cno=student.cno and student.sno=score.sno and class.cno= ? and term=?";
PreparedStatement pre=con.prepareStatement(sql);
pre.setString(1, aclass.getSelectedItem().toString());
pre.setInt(2, Integer.parseInt(aterm.getSelectedItem().toString()));
//JOptionPane.showMessageDialog(null,aterm.getSelectedItem().toString() );
rs=pre.executeQuery();
showToTable(rs);
CertainClassFrame.this.validate();
jtable.validate();
rs.close();
pre.close();
}catch(SQLException e1){
JOptionPane.showMessageDialog(null, e1.getMessage());
}
}
////////////////////////////将数据显示到表格中
void showToTable(ResultSet result){
try{
boolean more=result.next();
if(!more){
JOptionPane.showMessageDialog(null,"no data found");
}
Vector columname=new Vector();
Vector rows=new Vector();
ResultSetMetaData rsmd=result.getMetaData();
for(int i=1;i<=rsmd.getColumnCount();i++)
columname.addElement(rsmd.getColumnName(i));
do{
rows.addElement(getNextRow( result,rsmd));
}while(result.next());
jtable=new JTable(rows,columname);
JScrollPane js=new JScrollPane(jtable);
CertainClassFrame.this.getContentPane().remove(jp2);
jp2=new JPanel();
jp2.add(js);
CertainClassFrame.this.getContentPane().add(jp2,BorderLayout.CENTER);
jtable.validate();
}catch(SQLException e1){
JOptionPane.showMessageDialog(null,e1.getMessage());
}
}
private Vector getNextRow(ResultSet rs,ResultSetMetaData rsmd){
Vector vc=new Vector();
try{
for(int i=1;i<=rsmd.getColumnCount();i++){
vc.addElement(rs.getString(i));
}
}catch(SQLException e1){
JOptionPane.showMessageDialog(null,e1.getMessage());
}
return vc;
}
}
//////////////////////////////////////////////////////
JComboBox aclass;
JComboBox aterm;
JLabel jl_class,jl_term,jl_course,jl_ave,jl_pass;
Connection con;
JTable jtable;
ResultSet rs;
JScrollPane js;
JPanel jp2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -