⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scoredlg.java

📁 Java编程技巧
💻 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 + -