?? 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 + -