📄 searchframe.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 + -