📄 grid.java
字号:
import java.awt.*;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Comparator;public class Grid extends Panel{ private static final int NUMBER_OF_ROWS = 10; private Row[] r; private int rowCount; private ArrayList students; private StudentListApp.rowClickAction rcListener; public Grid() { students=new ArrayList(); setLayout( new GridLayout(11,1) );//set layout 11行 add( new GridLabel() ); r = new Row[NUMBER_OF_ROWS]; for ( int count = 0 ; count < NUMBER_OF_ROWS ; count++ ) { r[count] = new Row();//add rows add(r[count]); } } public void addrcListener(StudentListApp.rowClickAction l){ this.rcListener=l; for(int i=0;i<NUMBER_OF_ROWS;i++) r[i].addrcListener(this.rcListener); } public int search(String idNum){ for(int i=0;i<students.size();i++){ Student stu=(Student)students.get(i); if(stu.getId().equals(idNum)){ return i; } } return -1; } public void addRow(Student stu){ if(search(stu.getId())!=-1) throw new IllegalArgumentException("该ID已存在!"); if(rowCount<NUMBER_OF_ROWS){ students.add(stu); refreshRows(); } else throw new IllegalArgumentException("学生数已满!"); } public void delRow(String idNum){ int idx=search(idNum); if(idx!=-1){ students.remove(idx); refreshRows(); return; } throw new IllegalArgumentException("未找到该项,删除失败!"); } public void editRow(Student stu){ int idx=search(stu.getId()); if(idx!=-1){ students.remove(idx);//删除原对象 students.add(stu);//加入新对象 相同ID. refreshRows(); }else throw new IllegalArgumentException("未找到该项,修改失败!"); } public void sortRow(){ Comparator comp = new Mycomparator(); Collections.sort(students,comp); refreshRows(); } public Student getRow(String id){ int idx=search(id); if(idx!=-1) return (Student)students.get(idx); else return null; } /** * 刷新各行数据 */ public void refreshRows(){ for(int i=0;i<r.length;i++) r[i].clearAll(); for(int i=0;i<students.size();i++){ r[i].setTextFields((Student)students.get(i)); } } }class Mycomparator implements Comparator{ public int compare(Object o1,Object o2) { Student s1=(Student)o1; Student s2=(Student)o2; if(s1.getScore()<s2.getScore()) return 1; else return 0; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -