📄 scoredlg.java
字号:
import javax.swing.*;
import java.awt.*;
import java.lang.*;
import java.awt.event.*;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2003
* Company:
* @author
* @version 1.0
*/
///修改比赛赛程项中各裁判给各选手打分的Dialog类
public class ScoreDlg extends Dialog implements ActionListener
{
Object data[][];
Object head[];
Play play;
JTable table;
JPanel main;
JScrollPane sp;
public void actionPerformed( ActionEvent e )
{
if(e.getActionCommand().equalsIgnoreCase("取消"))
{
dispose();
}
else if(e.getActionCommand().equalsIgnoreCase("添加选手"))
{
if(data==null) return;
Object temp[][]=data;
data=new Object[temp.length][];
for(int i=0;i<temp.length;i++)
{
data[i]=new Object[temp[i].length+1];
System.arraycopy(temp[i],0,data[i],0,temp[i].length);
}
showTable();
show();
}
else if(e.getActionCommand().equalsIgnoreCase("删除选手"))
{
if(data==null) return;
String no=JOptionPane.showInputDialog("请输入要删除的选手代号");
if(no==null) return;
Object temp[][]=data;
data=new Object[temp.length][temp[0].length-1];
if(no.equalsIgnoreCase(""))
{
for(int i=0;i<temp.length;i++)
System.arraycopy(temp[i],0,data[i],0,temp[i].length-1);
showTable();
show();
return;
}
for(int i=1;i<temp[0].length;i++)
{
if(temp[0][i].toString().equalsIgnoreCase(no))
{
for(int j=0;j<temp.length;j++)
{
int k;
for(k=0;k<i;k++)
data[j][k]=temp[j][k];
for(k=i;k<temp[j].length-1;k++)
data[j][k]=temp[j][k+1];
}
break;
}
}
showTable();
show();
}
else if(e.getActionCommand().equalsIgnoreCase("添加裁判"))
{
if(data==null) return;
Object temp[][]=data;
data=new Object[temp.length+1][temp[0].length];
System.arraycopy(temp,0,data,0,temp.length);
showTable();
show();
}
else if(e.getActionCommand().equalsIgnoreCase("删除裁判"))
{
if(data==null) return;
String no=JOptionPane.showInputDialog("请输入要删除的裁判名称");
if(no==null) return;
Object temp[][]=data;
data=new Object[temp.length-1][temp[0].length];
if(no.equalsIgnoreCase(""))
{
System.arraycopy(temp,0,data,0,temp.length-1);
showTable();
show();
return;
}
for(int i=1;i<temp.length;i++)
{
if(temp[i][0].toString().equalsIgnoreCase(no))
{
System.arraycopy(temp,0,data,0,i);
System.arraycopy(temp,i+1,data,i,temp.length-i-1);
break;
}
}
showTable();
show();
}
else if(e.getActionCommand().equalsIgnoreCase("确定"))
{
if(play==null||table==null)
{
JOptionPane.showMessageDialog(this,"请确保数据不为空!!!!");
return;
}
int m,n;
m=table.getRowCount();
n=table.getColumnCount();
play.player=null;
for(int i=1;i<n;i++)
{
String name=table.getValueAt(0,i).toString();
if(!name.equalsIgnoreCase("")) play.addPlayer(name);
}
play.referee=null;
for(int i=1;i<m;i++)
{
String name=table.getValueAt(i,0).toString();
if(!name.equalsIgnoreCase("")) play.addReferee(name);
}
play.netscore=null;
play.netscore=new double[m-1][n-1];
for(int i=1;i<m;i++)
{
for(int j=1;j<n;j++)
{
String name=table.getValueAt(i,j).toString();
play.netscore[i-1][j-1]=Double.parseDouble(name);
}
}
dispose();
}
}
public void showTable()
{
if(sp!=null)
main.remove(sp);
if(data!=null)
{
head=new Object[data[0].length];
head[0]="裁判名单";
for(int i=1;i<data[0].length;i++)
head[i]="选手"+(new Integer(i).toString());
}
table=new JTable(data,head);
table.setValueAt(new String("裁判\\选手"),0,0);
sp=new JScrollPane(table);
main.add(sp,BorderLayout.CENTER);
}
public ScoreDlg(Frame frame,Object d[][],Play p)
{
super(frame);
this.addWindowListener(new WindowAdapter(){
public void windowClosing( WindowEvent e )
{
ScoreDlg.this.dispose();
}});
data=d;
play=p;
head=null;
this.removeAll();
main=new JPanel(new BorderLayout());
add(main,BorderLayout.CENTER);
if(data!=null)
{
showTable();
///////////////
Box msouth=Box.createHorizontalBox();
main.add(msouth,BorderLayout.SOUTH);
msouth.add(Box.createHorizontalGlue());
JButton addplayer=new JButton("添加选手");
msouth.add(addplayer);
addplayer.addActionListener(this);
msouth.add(Box.createHorizontalGlue());
JButton deleteplayer=new JButton("删除选手");
msouth.add(deleteplayer);
deleteplayer.addActionListener(this);
msouth.add(Box.createHorizontalGlue());
JButton addreferee=new JButton("添加裁判");
msouth.add(addreferee);
addreferee.addActionListener(this);
msouth.add(Box.createHorizontalGlue());
JButton deletereferee=new JButton("删除裁判");
msouth.add(deletereferee);
deletereferee.addActionListener(this);
msouth.add(Box.createHorizontalGlue());
//////////////////////////////
Box south=Box.createHorizontalBox();
add(south,BorderLayout.SOUTH);
south.add(Box.createHorizontalGlue());
JButton ok=new JButton("确定");
south.add(ok);
ok.addActionListener(this);
south.add(Box.createHorizontalGlue());
JButton cancel=new JButton("取消");
south.add(cancel);
cancel.addActionListener(this);
south.add(Box.createHorizontalGlue());
}
this.pack();
this.setModal(true);
this.setTitle("当前赛项的裁判给选手打分的情况");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -