📄 queryprojectinfo.java
字号:
package com.query;
import com.DBManager.MyDB;
import com.MainFrame;
import com.component.MyFrame;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PrinterException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
/**
* @author Laiger
*/
public class QueryProjectInfo extends MyFrame implements ActionListener{
private JLabel jLabel1 = null;
private JComboBox jComboBox1 = null;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
private JButton b1 = null;
private JButton b3 = null;
private JButton print = null;
private JButton playTable = null;
/**
* This method initializes
*
*/
public QueryProjectInfo(MainFrame m) {
super(m);
initialize();
}
public QueryProjectInfo() {
super();
initialize();
}
/**
* This method initializes this
*
*/
private void initialize() {
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(23, 39, 43, 28));
jLabel1.setText("项目名");
this.setSize(new Dimension(849, 282));
this.setTitle("项目信息");
this.add(jLabel1, null);
this.add(getJComboBox1(), null);
this.add(getJScrollPane(), null);
this.add(getB1(), null);
this.add(getB3(), null);
this.add(getPrint(), null);
this.add(getPlayTable(), null);
}
/**
* This method initializes jComboBox1
* @return javax.swing.JComboBox
* @uml.property name="jComboBox1"
*/
private JComboBox getJComboBox1() {
if (jComboBox1 == null) {
jComboBox1 = new JComboBox();
jComboBox1.setBounds(new Rectangle(94, 39, 157, 31));
ResultSet rs=db.executeQuery("select * from project");
try {
while(rs.next()){
jComboBox1.addItem(rs.getString("name").trim());
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jComboBox1.setSelectedIndex(-1);
jComboBox1.addActionListener(this);
}
return jComboBox1;
}
/**
* This method initializes jScrollPane
* @return javax.swing.JScrollPane
* @uml.property name="jScrollPane"
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(16, 84, 808, 123));
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}
/**
* This method initializes jTable
* @return javax.swing.JTable
* @uml.property name="jTable"
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
}
return jTable;
}
/**
* This method initializes b1
* @return javax.swing.JButton
* @uml.property name="b1"
*/
private JButton getB1() {
if (b1 == null) {
b1 = new JButton();
b1.setBounds(new Rectangle(268, 41, 87, 27));
b1.setText("项目信息");
b1.addActionListener(this);
}
return b1;
}
/**
* This method initializes b3
* @return javax.swing.JButton
* @uml.property name="b3"
*/
private JButton getB3() {
if (b3 == null) {
b3 = new JButton();
b3.setBounds(new Rectangle(384, 42, 117, 30));
b3.setText("成绩按分排名");
b3.addActionListener(this);
}
return b3;
}
/**
* This method initializes print
* @return javax.swing.JButton
* @uml.property name="print"
*/
private JButton getPrint() {
if (print == null) {
print = new JButton();
print.setBounds(new Rectangle(509, 223, 96, 29));
print.setText("打印");
print.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
try {
jTable.print();
} catch (PrinterException e1) {
e1.printStackTrace();
}
}
});
}
return print;
}
public void updateTable1(String sql){
ResultSet rs=db.executeQuery(sql);
try {
Vector row,col;
row=new Vector();
col=new Vector();
col.add("学生编号");col.add("姓名");col.add("成绩");col.add("得分");
MyDB d=new MyDB();
d.connectDB();
while(rs.next()){
Vector v=new Vector();
String athleteID=rs.getString("athleteID");
v.add(athleteID);
v.add(d.getString("select * from athlete where id='"+athleteID+"'", "name"));
v.add(rs.getFloat("achievement"));
v.add(rs.getInt("score"));
row.add(v);
}
d.close();
jTable=new JTable(row,col);
jScrollPane.setViewportView(jTable);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateTable2(){
ResultSet rs=db.executeQuery("select * from project where name='"+jComboBox1.getSelectedItem().toString().trim()+"'");
try {
Vector row,col;
row=new Vector();
col=new Vector();
col.add("编号");col.add("名称");col.add("负责人");col.add("联系电话");
col.add("举办地址");col.add("举办时间");col.add("参加人数");
col.add("最高记录");col.add("记录保持者");
while(rs.next()){
Vector v=new Vector();
v.add(rs.getString("id"));
v.add(rs.getString("name"));
v.add(rs.getString("principal"));
v.add(rs.getString("phone"));
v.add(rs.getString("address"));
v.add(rs.getString("date"));
v.add(rs.getString("attendNumber"));
v.add(rs.getString("record"));
v.add(rs.getString("recorder"));
row.add(v);
}
jTable=new JTable(row,col);
jScrollPane.setViewportView(jTable);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void actionPerformed(ActionEvent e) {
if(jComboBox1.getSelectedIndex()<0){
JOptionPane.showMessageDialog(this,"请先选择记录!");
return;
}
if(e.getSource()==b1){
this.updateTable2();
}
else if(e.getSource()==b3){
String proname=jComboBox1.getSelectedItem().toString().trim();
String proID=db.getString("select * from project where name='"+proname+"'", "id");
String sql="select * from achievement where projectID="+proID+" order by score desc";
this.updateTable1(sql);
}
else if(e.getSource()==playTable){
int number=jTable.getRowCount();
int nextNumber=1;
if(number==1){
JOptionPane.showMessageDialog(this,"恭喜!该项目的冠军已经产生!");
this.playTable.setEnabled(false);
return;
}
//计算下一轮参赛名额
do{
number/=2;
if(2*nextNumber<jTable.getRowCount())
nextNumber*=2;
}while(number>1);
Vector sameScore=new Vector();//当在最后有一些相同的分数时,要参加附加赛进入下一轮
int score=Integer.parseInt(jTable.getValueAt(nextNumber-1, 3).toString());
int i=0;
i=nextNumber;
int x=jTable.getRowCount();
do{
sameScore.add(i);
i++;
if(i>=x)
break;
}while(Integer.parseInt(jTable.getValueAt(i, 3).toString())==score);
int same=sameScore.size();//需要参加附加赛的数量
if(same>1){
JOptionPane.showMessageDialog(this, "需要先参加附加赛,然后产生进入下一轮的参赛列表!");
return;
}
//删除被淘汰的成员
//jTable.removeRowSelectionInterval(nextNumber-1, jTable.getRowCount()-1);
Vector row,col;
row=new Vector();
col=new Vector();
col.add("学生编号");col.add("姓名");col.add("成绩");col.add("得分");
for(int j=0;j<nextNumber;j++)
{
Vector v=new Vector();
for(int k=0;k<4;k++){
v.add(jTable.getValueAt(j, k));
}
row.add(v);
}
jTable=new JTable(row,col);
jTable.revalidate();
jScrollPane.setViewportView(jTable);
}
}
/**
* @return the playTable
* @uml.property name="playTable"
*/
private JButton getPlayTable() {
if (playTable == null) {
playTable = new JButton();
playTable.setBounds(new Rectangle(539, 43, 102, 31));
playTable.setText("生成参赛单");
playTable.addActionListener(this);
}
return playTable;
}
} // @jve:decl-index=0:visual-constraint="25,55"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -