📄 scoresystem.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class Student{
public String number,name;
public float score;
public Student(String number, String name, float score){
this.number=number;
this.name=name;
this.score=score;
}
public String toString(){
String temp="";
temp+=number+" "+name+" "+String.valueOf(score);
return temp;
}
};
public class ScoreSystem{
JFrame frame;
JList list1;
JDialog dup,dsele,davg;
JPanel p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,pscren;
JLabel lnum,lnam,lsco,l4,l5,l6,l7,l8,l9,l10,lnum1,lnam1,lsco1,l14;
JTextField tfnum,tfnam,tfsco,tf4,tf5,tf6,tf7,tf8,tf9,tf10;
JButton binput,bselect,bdele,bupdate,bavg,bpaixu,bok,bsele2;
DefaultListModel listModel;
String number[]={"510704114","510704115","510704117","510704118","510704119","","","","","","",""};//文本数组
String name[]={"戴志杰","张承志","刘步伟","JORDAN","李炳辉","","","","","","",""};
float score[]={98,90,89,80,85,0,0,0,0,0};
public static void main(String args[]){
ScoreSystem SS=new ScoreSystem();
SS.be();
}
public void be(){
frame=new JFrame("计应051 戴志杰"); ///////////////////////////////////////////////
listModel=new DefaultListModel(); //
list1=new JList(listModel); //创建列表 //
JScrollPane jsp=new JScrollPane(list1,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);//加入滚动条
listModel.addElement(new Student(number[0],name[0],score[0])); //
listModel.addElement(new Student(number[1],name[1],score[1]));
listModel.addElement(new Student(number[2],name[2],score[2]));
listModel.addElement(new Student(number[3],name[3],score[3]));
listModel.addElement(new Student(number[4],name[4],score[4])); //
Container contentPane=frame.getContentPane();
contentPane.add(jsp,BorderLayout.WEST);
//创建多个JButton实例 //
binput=new JButton("添加");
bselect=new JButton("查询");
bdele=new JButton("删除");
bupdate=new JButton("修改");
bavg=new JButton("平均分");
bpaixu=new JButton("排序");
//将六个按钮添加到第一个面板
p1=new JPanel();
p1.setLayout(new GridLayout(1,6));
p1.add(binput);
p1.add(bselect);
p1.add(bdele);
p1.add(bupdate);
p1.add(bavg);
p1.add(bpaixu);
contentPane.add(p1,BorderLayout.SOUTH);//添加面板到南部
lnum=new JLabel("学号:"); //
tfnum=new JTextField(10);
p2=new JPanel();
p2.add(lnum);
p2.add(tfnum);
lnam=new JLabel("姓名:");
tfnam=new JTextField(10);
p3=new JPanel();
p3.add(lnam);
p3.add(tfnam);
lsco=new JLabel("成绩:");
tfsco=new JTextField(10);
p4=new JPanel();
p4.add(lsco);
p4.add(tfsco);
p5=new JPanel();
p5.setLayout(new GridLayout(3,1)); //
p5.add(p2);
p5.add(p3);
p5.add(p4);
contentPane.add(p5,BorderLayout.EAST);//用一个面板将含有三个文本输入的面板放在整体东恻
//显示内容窗格上部:学号姓名等的提示信息
pscren=new JPanel();
pscren.setLayout(new GridLayout(1,4)); //
lnum1=new JLabel("学号");
lnam1=new JLabel("姓名");
lsco1=new JLabel("成绩");
l14=new JLabel("请输入学生信息:");
pscren.add(lnum1);
pscren.add(lnam1); //
pscren.add(lsco1);
pscren.add(l14);
contentPane.add(pscren,BorderLayout.NORTH); // // // // // // // 整体界面
//binput按钮的监听事件实现添加
binput.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Student student; int k=0;
for(int j=0;j<listModel.getSize();j++){
student=(Student)listModel.getElementAt(j);
if(tfnum.getText().equals(student.number)){String warning="对不起,你输入的学号已存在";
JOptionPane.showMessageDialog(pscren,warning,"警告",JOptionPane.INFORMATION_MESSAGE);
break; }
else{ k=1;break;}
}
if(k==1){ for(int i=0;i<10;i++){
if( number[i]==""){
number[i]=tfnum.getText();
name[i]=tfnam.getText();
score[i]=Float.valueOf(tfsco.getText());
listModel.addElement(new Student(number[i],name[i],score[i]));
String warning="输入成功";
JOptionPane.showMessageDialog(pscren,warning,"提示",JOptionPane.INFORMATION_MESSAGE);
break;
}
}
}
}
});
bselect.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dsele.setVisible(true);
}
});
///////////////////////////////////////////////////////////////////////////////// 实现查询功能
//创建对话框dsele并设置添加其有关组件
dsele=new JDialog(frame,"查询成绩",false);
l7=new JLabel("请输入学号 ");//创建多个标签
tf7=new JTextField(10);//输入新可选项的文本域
bsele2=new JButton("查询");
p10=new JPanel();
p10.add(l7);
p10.add(tf7);
p10.add(bsele2);
l8=new JLabel("姓名");
tf8=new JTextField(10);
p11=new JPanel();
p11.add(l8);
p11.add(tf8);
l9=new JLabel("成绩");
tf9=new JTextField(10);
p12=new JPanel();
p12.add(l9);
p12.add(tf9);
dsele.getContentPane().setLayout(new GridLayout(3,1));
dsele.getContentPane().add(p10);
dsele.getContentPane().add(p11);
dsele.getContentPane().add(p12);
dsele.setSize(300,150);
bsele2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Student student;
for(int i=0;i<listModel.getSize();i++){
student=(Student)listModel.getElementAt(i);
if(tf7.getText().equals(student.number)){
tf8.setText(student.name);
tf9.setText(String.valueOf(student.score));
break;
}
else{
if(i==listModel.getSize()-1)
{ String warning="对不起,你输入的学号不存在";
JOptionPane.showMessageDialog(pscren,warning,"警告",JOptionPane.WARNING_MESSAGE);}
}
}
dsele.setVisible(true);
}
});////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////“删除”事件
bdele.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int index = list1.getSelectedIndex();
listModel.remove(index);
int size = listModel.getSize();
if ( index==listModel.getSize() )
{ index--;
list1.setSelectedIndex(index);
}
}
});
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////// “修改”事件
//创建并设置bupdate按钮的对话框dup
dup=new JDialog(frame,"修改信息",true);
dup.setSize(240,150);
dup.getContentPane().setLayout(new GridLayout(4,1));
bupdate.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Toolkit.getDefaultToolkit().beep();
dup.setVisible(true);
}
});
//创建并设置对话框dup的组件
l4=new JLabel("学号:");
tf4=new JTextField(10);
p6=new JPanel();
p6.add(l4);
p6.add(tf4);
l5=new JLabel("姓名:");
tf5=new JTextField(10);
p7=new JPanel();
p7.add(l5);
p7.add(tf5);
l6=new JLabel("成绩:");
tf6=new JTextField(10);
p8=new JPanel();
p8.add(l6);
p8.add(tf6);
bok=new JButton("确定");
p9=new JPanel();
p9.add(bok);
dup.getContentPane().setLayout(new GridLayout(4,1));
dup.getContentPane().add(p6);
dup.getContentPane().add(p7);
dup.getContentPane().add(p8);
dup.getContentPane().add(p9);
//修改"ok"时所加的监听
bok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Student stu1=(Student)list1.getSelectedValue();
Student stu2;
for(int i=0;i<listModel.getSize();i++){
stu2=(Student)listModel.getElementAt(i);
if(stu2.number.equals(stu1.number)){
listModel.remove(i);
stu1.name=tf5.getText();
stu1.score=(Float.parseFloat(tf6.getText()));
listModel.insertElementAt(stu1,i);
number[i]=tf4.getText();
name[i]=tf5.getText();
score[i]=Float.valueOf(tf6.getText());
break;
}
}
dup.setVisible(false);
}
});
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////“平均分”
//创建对话框davg并添加设置其有关组件
davg=new JDialog(frame,"平均分",true);
l10=new JLabel("目前平均分为:");
tf10=new JTextField(10);
p13=new JPanel();
p13.setBackground(Color.CYAN);
p13.add(l10);
p13.add(tf10);
davg.getContentPane().add(p13);
//实现求平均分功能
bavg.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Student stu4;
int n=listModel.getSize();
float sum=0;
for(int i=0;i<listModel.getSize();i++){
stu4=(Student)listModel.getElementAt(i);
sum+=stu4.score;
}
tf10.setText(String.valueOf(sum/n));
davg.setVisible(true);
}
});
davg.setSize(150,100);
/////////////////////////////////////////////////////////////////
bpaixu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){String warning="抱歉,该功能暂未实现";
JOptionPane.showMessageDialog(pscren,warning,"抱歉",JOptionPane.INFORMATION_MESSAGE);
}});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();//将JFrame 设置到适当大小
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -