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

📄 hiremanager.java

📁 比较简单的vechilesystem代码还没经过优化
💻 JAVA
字号:
/**
 * Created by IntelliJ IDEA.
 * User: Ray
 * Date: 2008-4-10
 * Time: 20:38:46
 * To change this template use File | Settings | File Templates.
 */
package manage;

import vehicleinfo.*;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class HireManager extends JFrame implements ActionListener,KeyListener {
    private VehicleInfoFile vehiclesFile;
    private HireManage hireManage;

    private JTabbedPane dbTabPane;

    //addPanel definition
    private JPanel addPanel;
    private JButton clearButton;
    private JButton addButton;
    private AddPanel addInnerPanel;

    //viewPanel definition
    private JPanel viewPanel;
    private JButton refreshButton;
    private JTextArea viewArea;
    private JScrollPane viewSPane;
    private JComboBox viewComboBox;

    //updatePanel definition
    private JPanel updatePanel;
    private JLabel updateLabel;
    private JTextField updateTextField;
    private JButton saveButton;
    private AddPanel updateInnerPanel;
    private JButton updateOKButton;
    private JButton deleteButton;

    //businessPanel definition
    private JPanel businessPanel;
    private JLabel businessLabel;
    private JTextField businessTextField;
    private JTextArea businessTextArea;
    private JButton hireButton;
    private JButton revertButton;

    public HireManager(){
        super("Hire System");
        vehiclesFile=new VehicleInfoFile();
        hireManage=new HireManage(vehiclesFile.getAllVehicles());
        setGUIComponent();

    }

    //GUI component
    private void setGUIComponent() {
        Container c=getContentPane();
        c.setLayout(null);

        this.setSize(new Dimension(500, 314));
        dbTabPane=new JTabbedPane();

        dbTabPane.setSize(new Dimension(502,314));
        //define add panel
        addPanel=new JPanel();
        addPanel.setLayout(null);
        addButton=new JButton("Add");
        addButton.setBounds(new Rectangle(60, 173, 56, 28));
        addButton.addActionListener(this);
        addPanel.add(addButton, null);
        clearButton=new JButton("clear");
        clearButton.setBounds(new Rectangle(310, 173, 63, 28));
        clearButton.addActionListener(this);
        addPanel.add(clearButton, null);
        addInnerPanel=new AddPanel();
        addInnerPanel.setLocation(new Point(22, 19));
        addInnerPanel.setSize(new Dimension(430, 132));
        addPanel.add(addInnerPanel, null);
        dbTabPane.add("Add Vehicle",addPanel);

        //define view panel
        viewPanel=new JPanel();
        viewPanel.setLayout(null);
        viewArea=new JTextArea(6,44);
        String sortWays[]={"Select for sort way","Default","Type","Registration","Colour","HireState"};
		viewComboBox = new JComboBox(sortWays);
		viewComboBox.setBounds(new Rectangle(25, 196, 181, 34));
		viewComboBox.setVisible(true);
		viewComboBox.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				String selection=viewComboBox.getSelectedItem().toString();
				if(selection.equals("Type")){
					hireManage.sortByType();
					viewVehicles();
					}
				else if(selection.equals("Registration")){
					hireManage.sortByRegistration();
					viewVehicles();
					}
				else if(selection.equals("Colour")){
					hireManage.sortByColour();
					viewVehicles();
					}
				else if(selection.equals("HireState")){
					hireManage.sortByHireState();
					viewVehicles();
					}
				else if(selection.equals("Default")){
					hireManage.vehiclesSort();
					viewVehicles();
					}
			}
		});
        viewPanel.add(viewComboBox, null);
        refreshButton=new JButton("refresh");
        refreshButton.addActionListener(this);
        refreshButton.setLocation(new Point(280, 196));
        refreshButton.setSize(new Dimension(181, 34));
        viewPanel.add(refreshButton, null);
        viewSPane=new JScrollPane();
        viewSPane.setBounds(new Rectangle(24, 8, 437, 158));
        viewSPane.setViewportView(viewArea);
        viewSPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        viewPanel.add(viewSPane,null);
        dbTabPane.add("View Vehicles",viewPanel);

        //define update and delete panel
        updatePanel=new JPanel();
        updatePanel.setLayout(null);
        updatePanel.setPreferredSize(new Dimension(70, 28));
        updateInnerPanel=new AddPanel();
        updateInnerPanel.setLocation(new Point(22, 14));
        updateInnerPanel.setSize(new Dimension(430, 132));
        updatePanel.add(updateInnerPanel, null);
        updateLabel=new JLabel("Vehicle:");
        updateLabel.setFont(new Font("Dialog", Font.BOLD, 12));
        updateLabel.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED);
        updateLabel.setHorizontalAlignment(SwingConstants.RIGHT);
        updateLabel.setPreferredSize(new Dimension(70, 28));
        updateLabel.setBounds(new Rectangle(22, 163, 70, 28));
        updateLabel.setText("Search for");
        updatePanel.add(updateLabel, null);
        updateTextField=new JTextField(10);
        updateTextField.setPreferredSize(new Dimension(70, 28));
        updateTextField.setBounds(new Rectangle(97, 163, 130, 28));
        updateTextField.addKeyListener(this);
        updatePanel.add(updateTextField, null);
        deleteButton=new JButton("Delete");
        deleteButton.setBounds(new Rectangle(382, 163, 70, 28));
        deleteButton.setPreferredSize(new Dimension(70, 28));
        deleteButton.addActionListener(this);
        updatePanel.add(deleteButton, null);
        saveButton=new JButton("Save");
        saveButton.setPreferredSize(new Dimension(70, 30));
        saveButton.setLocation(new Point(294, 162));
        saveButton.setSize(new Dimension(74, 30));
        saveButton.addActionListener(this);
        updatePanel.add(saveButton, null);
        updateOKButton=new JButton("OK");
        updateOKButton.setBounds(new Rectangle(231, 162, 51, 30));
        updateOKButton.setPreferredSize(new Dimension(70, 28));
        updateOKButton.addActionListener(this);
        updatePanel.add(updateOKButton, null);
        dbTabPane.add("Update",updatePanel);

        //define hire panel
        businessPanel=new JPanel();
        businessPanel.setLayout(null);
        businessTextField=new JTextField(5);
        businessTextField.setBounds(new Rectangle(116, 11, 201, 27));
        businessLabel=new JLabel("Registration:");
        businessLabel.setBounds(new Rectangle(44, 11, 72, 27));
        businessTextArea=new JTextArea(6,20);
        businessTextArea.setLocation(new Point(44, 50));
        businessTextArea.setSize(new Dimension(273, 176));
        hireButton=new JButton("Hire");
        hireButton.setLocation(new Point(359, 118));
        hireButton.setSize(new Dimension(82, 28));
        hireButton.addActionListener(this);
        revertButton=new JButton("revert");
        revertButton.setBounds(new Rectangle(359, 180, 82, 28));
        businessPanel.add(hireButton, null);
        businessPanel.add(revertButton, null);
        businessPanel.add(businessTextArea, null);
        businessPanel.add(businessLabel, null);
        businessPanel.add(businessTextField, null);
        revertButton.addActionListener(this);
        dbTabPane.add("Business",businessPanel);
        c.add(dbTabPane);
    }

      public boolean addVehcile(){
          String type,registration,colour,curruntMileage;
          try{
              type=addInnerPanel.getType();
              registration=addInnerPanel.getRegistration();
              colour=addInnerPanel.getColour();
              curruntMileage=addInnerPanel.getCurruntMileage();
              if(type.equals("")||registration.equals("")||colour.equals("")||curruntMileage.equals("")){
               JOptionPane.showMessageDialog(null,"Not bank");
                return false;
              }
              Vehicle vehicle=new Vehicle(type,registration,colour,Double.parseDouble(curruntMileage));
              if(hireManage.searchFor(registration)==null){
                  hireManage.vehicleRegister(vehicle);
                  vehiclesFile.write(hireManage.getAllVehicles());
                  return true;
               }
               else JOptionPane.showMessageDialog(null,"The vehicle is exist!");
             }
         catch(NumberFormatException e){
             JOptionPane.showMessageDialog(null,"Mileage should be number!");
         }
         return false;
    }

    public void viewVehicles() {
        String viewString="Type\tRegistration\tColour\tCurruntMileage\tHireState\n";
        for(Vehicle vehicle:hireManage.getAllVehicles()){
              viewString+=vehicle.getVehicleType()+"\t"+vehicle.getRegistration()+"\t"+
                      vehicle.getColour()+"\t"+vehicle.getCurruntMileage()+"\t"+vehicle.getHireState()+"\n";
        }
        viewArea.setText(viewString);
    }

    public void viewVehicle(String registration){
        Vehicle vehicle;
            if((vehicle=hireManage.searchFor(registration))!=null){
                updateInnerPanel.setType(vehicle.getVehicleType());
                updateInnerPanel.setRegistration(vehicle.getRegistration());
                updateInnerPanel.setColour(vehicle.getColour());
                updateInnerPanel.setCurruntMileage(vehicle.getCurruntMileage()+"");
            }
            else JOptionPane.showMessageDialog(null,"Not found!");
    }

    public boolean saveVehicle(String registration){
        String type,colour,curruntMileage,newRegistration;
        try{
            type=updateInnerPanel.getType();
            newRegistration=updateInnerPanel.getRegistration();
            colour=updateInnerPanel.getColour();
            curruntMileage=updateInnerPanel.getCurruntMileage();
            Vehicle vehicle=hireManage.searchFor(registration);
            if(vehicle==null)return false;
            if(type.equals("")||newRegistration.equals("")||colour.equals("")||curruntMileage.equals("")){
               JOptionPane.showMessageDialog(null,"Not bank");
                return false;
            }
            if((hireManage.searchFor(newRegistration)==null&&!registration.equals(newRegistration))
                    ||registration.equals(newRegistration)){
                vehicle.resetVehicleType(type);
                vehicle.resetRegistration(newRegistration);
                vehicle.resetColour(colour);
                vehicle.resetCurruntMileage(Double.parseDouble(curruntMileage));
                vehiclesFile.write(hireManage.getAllVehicles());
                return true;
            }
            else JOptionPane.showMessageDialog(null,"The vehicle is exist!");
        }catch(NumberFormatException e){
            JOptionPane.showMessageDialog(null,"Mileage should be number!");
        }
            return false;
    }

    public boolean deleteVehicle(String registration){
        for(Vehicle vehicle:hireManage.getAllVehicles()){
            if(vehicle.getRegistration().equals(registration)){
                hireManage.deleteVehicle(vehicle);
                vehiclesFile.write(hireManage.getAllVehicles());
                updateInnerPanel.clearContent();
                updateTextField.setText("");
                return true;
            }
        }
        return false;
    }


    public void hireVehicle(String registration){
        if(hireManage.hireVehicle(registration)){
            vehiclesFile.write(hireManage.getAllVehicles());
            businessTextArea.setText("Hire successfully!");
        }
        else businessTextArea.setText("Cann't hire!\nPlease check for existence" +
                "\nor not be hired of the vehicle.\n");
    }

    public void revertVehicle(String registration,double newMileage){
        String report=hireManage.revertVehicle(registration,newMileage);
        businessTextArea.setText(report);
        vehiclesFile.write(hireManage.getAllVehicles());
    }

    
    public void actionPerformed(ActionEvent event) {
        if(event.getSource()==addButton){
            if(addVehcile())
            JOptionPane.showMessageDialog(null,"Successful Addition!");
        }
        if(event.getSource()==clearButton){
            addInnerPanel.clearContent();
        }
        if(event.getSource()==refreshButton){
            viewVehicles();
        }
        if(event.getSource()==saveButton){
            String registration=updateTextField.getText();
            if(registration.equals(""))JOptionPane.showMessageDialog(null,"Operation error!");
            else if(saveVehicle(registration))
            JOptionPane.showMessageDialog(null,"Successful update!");
        }
        if(event.getSource()==updateOKButton){
            viewVehicle(updateTextField.getText());
        }
        if(event.getSource()==deleteButton){
            String registration=updateTextField.getText();
            if(registration.equals(""))JOptionPane.showMessageDialog(null,"Operation error!");
            else if(deleteVehicle(registration))
                JOptionPane.showMessageDialog(null,"Successful deletion!");
        }
        if(event.getSource()==hireButton){
            hireVehicle(businessTextField.getText());
        }
        if(event.getSource()==revertButton){
            String registration=businessTextField.getText();
            if(registration.equals(""))JOptionPane.showMessageDialog(null,"Operation error!");
            else if(hireManage.searchFor(registration)!=null){
                Double mileage=Double.parseDouble(JOptionPane.showInputDialog("The curruntMileage:"));
                revertVehicle(registration,mileage);
            }
            else businessTextArea.setText("The vehicle's not been hired or not exist!");
        }
    }

    public void keyTyped(KeyEvent event) {
         
    }

    public void keyPressed(KeyEvent event) {
        if(event.getSource()==updateTextField){
            updateInnerPanel.clearContent();
        }
    }

    public void keyReleased(KeyEvent event) {

    }

    public static void main(String[] args){
        HireManager hm=new HireManager();
        hm.setVisible(true);
        hm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

⌨️ 快捷键说明

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