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

📄 searchframe.java

📁 学生管理系统的源码
💻 JAVA
字号:
/*
 * Created on 2006-3-10
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.nanjue;

/**
 * @author weiWang
 * 查找面板,排序列表
 */
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.table.*;
 import java.util.*;
 
 public class SearchFrame extends JFrame{
 	DefaultTableModel m;
    JTable studentTable;
    String[] name;
    JDialog dialog;
    JPanel btnPanel=new JPanel();
    JButton nameBtn=new JButton("按姓名排序");
    JButton ageBtn=new JButton("按年龄排序");
    JButton numBtn=new JButton("按学号排序");
    JButton deleteBtn=new JButton("删除");
    boolean delete=false;
    Object[][] data;  
    Dimension ss=Toolkit.getDefaultToolkit().getScreenSize();
    
    public SearchFrame(){
    	super("student information");
        name=getDataName();    
        getData();
        btnPanel.setLayout(new FlowLayout(20));
        nameBtn.setPreferredSize(new Dimension(100,25));
        nameBtn.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        		paixuName(data);
        	    change();
        	}
        });
        ageBtn.setPreferredSize(new Dimension(100,25));
        ageBtn.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        		paixuAge(data);
        		change();
        	}
        });
        numBtn.setPreferredSize(new Dimension(100,25));
        numBtn.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        		paixuNum(data);
        		change();
        	}
        });
        deleteBtn.setPreferredSize(new Dimension(100,25));
        
        deleteBtn.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        		deletedEvent();
        	}
        }); 
        btnPanel.add(nameBtn);
        btnPanel.add(ageBtn);
        btnPanel.add(numBtn);
        btnPanel.add(deleteBtn);
        this.getContentPane().setLayout(new BorderLayout(0,10));
    	m=new DefaultTableModel(data,name);
    	studentTable=new JTable(m);
    	this.getContentPane().add("Center",new JScrollPane(studentTable));
    	this.getContentPane().add("South",btnPanel);
    }
    
    //获得数据项
      void getData(){
      Vector vector=(FileEvent.getStudentInfor());
      data=new Object[vector.size()][name.length];
      for(int i=0;i<vector.size();i++){
    	  data[i][0]=((Student)vector.elementAt(i)).getStudentName();
    	  data[i][1]=((Student)vector.elementAt(i)).getSex();
    	  data[i][2]=((Student)vector.elementAt(i)).getAge();
    	  data[i][3]=((Student)vector.elementAt(i)).getClassname();
    	  data[i][4]=((Student)vector.elementAt(i)).getID();
    	  data[i][5]=((Student)vector.elementAt(i)).getQQ();
    	  data[i][6]=((Student)vector.elementAt(i)).getPingyu();
       }
    }
    
    //获得列名
    public String[] getDataName(){
    	 String[] s={"姓名","性别","年龄","班级","学号","qq号","评语"};
    	 return s;
    }
    
    //按名字排序
    public void paixuName(Object[][] data){
    	int row=data.length;
    	Object temp;
    	for(int i=0;i<row-1;i++){
    		for(int j=0;j<row-1;j++){
    	   	 if((String.valueOf(data[j][0]).compareToIgnoreCase
    	   	 		      (String.valueOf(data[j+1][0])))>0){
    	   	   for(int z=0;z<7;z++){
        	 	temp=data[j][z];
        	 	data[j][z]=data[j+1][z];
        	 	data[j+1][z]=temp;
        	   }                            
    	   	 }
    		} 
    	}	
    	
    }
    
    //按年龄排序
    public void paixuAge(Object[][] data){
    	int row=data.length;
    	Object temp;
    	for(int i=0;i<row-1;i++){
    		for(int j=0;j<row-1;j++){
    		 String a=String.valueOf(data[j][2]);
    	   	 String b=String.valueOf(data[j+1][2]);
    		 int aa,bb;
    	   	 if(a.equals(""))    a=new String("0");    //如果输入“”,则会产生异常
    	     if(b.equals(""))    b=new String("0"); 	 
    	   	 aa=Integer.parseInt(a);
    	   	 bb=Integer.parseInt(b);
    	     if(aa>bb){ 
    	   	   for(int z=0;z<7;z++){
        	 	temp=data[j][z];
        	 	data[j][z]=data[j+1][z];
        	 	data[j+1][z]=temp;
        	   }                            
    	   	 }
    		} 
    	}	
    	
    }
    
    //按学号排序
    public void paixuNum(Object[][] data){
    	int row=data.length;
    	Object temp;
    	for(int i=0;i<row-1;i++){
    		for(int j=0;j<row-1;j++){
    		 String a=String.valueOf(data[j][4]);
    	   	 String b=String.valueOf(data[j+1][4]);
    		 double aa,bb;
    	   	 if(a.equals(""))    a=new String("0");    //如果输入“”,则会产生异常
    	     if(b.equals(""))    b=new String("0"); 	 
    	   	 aa=Double.valueOf(a).doubleValue();
    	   	 bb=Double.valueOf(b).doubleValue();
    	     if(aa>bb){ 
    	   	   for(int z=0;z<7;z++){
        	 	temp=data[j][z];
        	 	data[j][z]=data[j+1][z];
        	 	data[j+1][z]=temp;
        	   }                            
    	   	 }
    		} 
    	}	
    }
    
   //重新设置排序后表 
    void change(){
       int count=m.getRowCount();
       for(int i=0;i<m.getRowCount();i++){  //移出当前表中所有元素
    	  while(m.getRowCount()!=0)  
       	    m.removeRow(i); 
       }  
       for(int j=0;j<count;j++)            //添加排序后的元素
       	    m.addRow(data[j]);
    }
    
    
    //删除数据
    public void deletedEvent(){
    	int n=studentTable.getSelectedRow();
    	if(n==-1)
    		showDialog();
    	else{
    	    m.removeRow(n);
    	    Vector delete=FileEvent.getStudentInfor();
    	    delete.removeElementAt(n);
            FileEvent.setStudentInforInvector(delete);
            getData();                        //要更新data中的数据
    	}
    }
    
    //对话框
    public void showDialog(){
        dialog=new JDialog(this,"提示",true);
    	JButton ybtn=new JButton("确定");
        ybtn.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
           	  dialog.dispose();
           }
        });
    	JLabel label=new JLabel("请选择要删除的选项!",JLabel.CENTER);
        JPanel p=new JPanel();
        p.setLayout(new BorderLayout());
        p.add("Center",label);
        p.add("South",ybtn);
        dialog.getContentPane().add("Center",p);
        dialog.setSize(200,200);
		dialog.show();     
    }
    
   
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -