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

📄 reportgenerator.java

📁 一个飞机调度员模拟训练程序,可以添加跑道数量,控制飞机飞行的速度.默认的密码可以在AtcSystem类里面修改,其中内置了三个用户名.这套系统是我和几个国外同学合力开发的,希望对大家有帮助
💻 JAVA
字号:
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.event.*;
import java.lang.*;
import java.io.*;
 /**
 * @author Ran Zhao  
 * @version 09/03/2007
 */
public class ReportGenerator implements ActionListener
{
    private static ReportGenerator singleton;
    private JFrame frame;
    private JLabel rlabel;
    private JLabel vlabel;
    private JButton ButtonExit;
    private JComboBox sortCombo;
    private JTable table; 
    private JScrollPane scrollPane;
    private ArrayList<User> u = new ArrayList<User>();
    private String[] sortName = {"Name", "Level", "Time", "Collisions"};
    private String[] columnNames = {"Name", "Level", "Time", "Collisions"};
    private String[][] data;
    
    public ReportGenerator()
    {
        singleton = this;
        for(User a : User.getUsers())
        {
            u.add(a);
        }
        setArray(u);
        frame = new JFrame("Report Generator");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800,600);   
        
        Container contentPane = frame.getContentPane();
        SpringLayout layout = new SpringLayout();
        contentPane.setLayout(layout);
        
        rlabel = new JLabel("Report Generator");
        rlabel.setFont(new Font(null,Font.BOLD,32));
        vlabel = new JLabel("Sort By");
        ButtonExit = new JButton(" Menu ");
        sortCombo = new JComboBox(sortName);
        sortCombo.setMaximumRowCount(3);
        MyTable mt=new MyTable('O');
        table = new JTable(mt);
        scrollPane = new JScrollPane(table);
        table.setPreferredScrollableViewportSize(new Dimension(740, 280));       
        
        contentPane.add(rlabel);
        contentPane.add(vlabel);
        contentPane.add(ButtonExit);
        contentPane.add(sortCombo);
        contentPane.add(scrollPane);
        
        layout.putConstraint(SpringLayout.WEST, rlabel,
                             300,
                             SpringLayout.WEST, contentPane);
        layout.putConstraint(SpringLayout.NORTH, rlabel,
                             30,
                             SpringLayout.NORTH, contentPane);
                             
        layout.putConstraint(SpringLayout.WEST, vlabel,
                             100,
                             SpringLayout.WEST, contentPane);
        layout.putConstraint(SpringLayout.SOUTH, vlabel,
                             110,
                             SpringLayout.NORTH, contentPane);           
                             
        layout.putConstraint(SpringLayout.WEST, sortCombo,
                             60,
                             SpringLayout.WEST, vlabel);
        layout.putConstraint(SpringLayout.SOUTH, sortCombo,
                             115,
                             SpringLayout.NORTH, contentPane);   
                             
         layout.putConstraint(SpringLayout.WEST, scrollPane,
                             30,
                             SpringLayout.WEST, contentPane);
        layout.putConstraint(SpringLayout.NORTH, scrollPane,
                             40,
                             SpringLayout.NORTH, sortCombo);  
                             
      
                             
        layout.putConstraint(SpringLayout.EAST, ButtonExit,
                            -50,
                             SpringLayout.EAST, contentPane);
        layout.putConstraint(SpringLayout.NORTH, ButtonExit,
                             500,
                             SpringLayout.NORTH, contentPane);
        
        sortCombo.addActionListener(this);
        ButtonExit.addActionListener(this);
        
        table.setEnabled(false);
        makeVisible();
    }
    
    public void makeVisible()
    {
        frame.setVisible(true);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
    }
    
    public static void show()
    {
        if (!(singleton == null)) { singleton.makeVisible(); } else { new ReportGenerator(); }
    }
    
    public void setArray(ArrayList<User> user)
    {
        
        int n = 0;
        for(int i=0; i<user.size(); i++)
            for(int j=0; j<user.get(i).result.size(); j++)
            {
                n++;
            }
        data = new String[n][4];
        int count = 0;

        for(int i=0; i<user.size(); i++)
            for(int j=0; j<user.get(i).result.size(); j++)
            {
                data[count][0] = user.get(i).toString();
                data[count][1] = u.get(i).result.get(j).getMyLevel().getName();
                data[count][2] = Integer.toString(u.get(i).result.get(j).getTime()/100);
                data[count][3] = Integer.toString(u.get(i).result.get(j).getFailure());
                count++;
            }
    }
    
     public void actionPerformed (ActionEvent e)
    {
        

        if (e.getSource().equals(ButtonExit)) 
        { 
            AdmMenu.show(); frame.setVisible(false);  
        }
        else
        {
            JComboBox cb = (JComboBox)e.getSource();
            String sName = (String)cb.getSelectedItem();
            if (sName == "Name") { table.setModel(new MyTable('N'));}
            if (sName == "Level") { table.setModel(new MyTable('L'));}
            if (sName == "Time") { table.setModel(new MyTable('T'));}
            if (sName == "Collisions") { table.setModel(new MyTable('F'));}   
        }
    }
    
    public void sorting(char method)
    {
        
        switch (method)
        {
            case 'N': for(int j=0; j<data.length; j++)
                        for(int k=0; k<data.length - 1; k++)
                        {
                            String temp;
                            if ( data[k][0].compareTo(data[k+1][0]) > 0)
                            {
                                for(int i=0; i<data[k].length; i++)
                                {
                                    temp = data[k][i];
                                    data[k][i] = data[k+1][i];
                                    data[k+1][i] = temp;
                                }
                            }
                        }
                        
                        //System.out.println(data[0][0]); 
                        break;
            case 'L': for(int j=0; j<data.length; j++)
                        for(int k=0; k<data.length - 1; k++)
                        {
                            String temp;
                            if ( data[k][1].compareTo(data[k+1][1]) > 0)
                            {
                                for(int i=0; i<data[k].length; i++)
                                {
                                    temp = data[k][i];
                                    data[k][i] = data[k+1][i];
                                    data[k+1][i] = temp;
                                }
                            }
                        }
   
                        //System.out.println(data[0][0]);
                        break;
            case 'T': for(int j=0; j<data.length; j++)
                        for(int k=0; k<data.length - 1; k++)
                        {
                            String temp;
                            if ( data[k][2].compareTo(data[k+1][2]) > 0)
                            {
                                for(int i=0; i<data[k].length; i++)
                                {
                                    temp = data[k][i];
                                    data[k][i] = data[k+1][i];
                                    data[k+1][i] = temp;
                                }
                            }
                        }
                 
                        //System.out.println(data[0][0]);
                        break;
            case 'F': for(int j=0; j<data.length; j++)
                        for(int k=0; k<data.length - 1; k++)
                        {
                            String temp;
                            if ( data[k][3].compareTo(data[k+1][3]) > 0)
                            {
                                for(int i=0; i<data[k].length; i++)
                                {
                                    temp = data[k][i];
                                    data[k][i] = data[k+1][i];
                                    data[k+1][i] = temp;
                                }
                            }
                        }
                        //System.out.println(data[0][0]);
                        break;
            default : System.out.println("Invalid operation");
        }
        
    }
    

    class MyTable extends AbstractTableModel
    {   
        //void MyTable(){}
        char model;
        MyTable(char m)
        {
            model = m;
        }
        
        
        public int getColumnCount() 
        {
            return columnNames.length;
        }
        public int getRowCount() 
        {
            if (model == 'O')
            {
                return data.length;
            }
            else
            {
                sorting(model);
                return data.length;
            }
        }
        public String getColumnName(int col) 
        {
            return columnNames[col];
        }
        public Object getValueAt(int row, int col) 
        {
            if (model == 'O')
            {
                return data[row][col];
            }
            else
            {
                sorting(model);
                return data[row][col];
            }
        }
        public Class getColumnClass(int c) 
        {
            return getValueAt(0, c).getClass();
        }
        

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -