⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queryprojectinfo.java

📁 这是一个用java语言开发的运动员成绩统计系统
💻 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 + -