📄 hiremanager.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 + -