📄 haircutshopmanage.java
字号:
}
else if("保存文件".equals(getValue(NAME)))
saveFile();
}
}
/**
*保存文件
*/
public void saveFile()
{
try
{
Date d=new Date();
String s=""+d.getYear()+""+d.getMonth()+""+d.getDay()+".hsm";
ObjectOutputStream o=
new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream(s)));
o.writeObject(dateData);
o.close();
isChanged=false;
saveTempFileAcition.setEnabled(false);
}
catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"保存文件操作失败","理发店经营软件",JOptionPane.PLAIN_MESSAGE);
}
}
/**
*打开文件
*/
public void loadFile(String s)
{
if(s==null)
{
JOptionPane.showMessageDialog(null,"操作不正确","理发店经营软件",JOptionPane.PLAIN_MESSAGE);
return;
}
try{
ObjectInputStream o=
new ObjectInputStream(
new BufferedInputStream(
new FileInputStream(s)));
dateData=(DateData)(o.readObject());
haircutShop=dateData.haircutShop;
o.close();
newDay();
isChanged=false;
saveTempFileAcition.setEnabled(false);
}
catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"打开文件操作失败","理发店经营软件",JOptionPane.PLAIN_MESSAGE);
}
}
/**
*打开临时文件
*/
public void loadTempFile()
{
String s=curPath;
try
{
if(curPath!=null)files=new JFileChooser(curPath);
else
files=new JFileChooser();
checkForSave();
int result=files.showOpenDialog(this);
File f;
if(result==files.APPROVE_OPTION)
{
f=files.getSelectedFile();
ObjectInputStream o=
new ObjectInputStream(
new BufferedInputStream(
new FileInputStream(f)));
dateData=(DateData)(o.readObject());
haircutShop=dateData.haircutShop;
o.close();
newDay();
isChanged=false;
saveTempFileAcition.setEnabled(false);
}
}
catch(Exception ex)
{
ex.printStackTrace();
curPath=s;
JOptionPane.showMessageDialog(null,"打开临时文件操作失败","理发店经营软件",JOptionPane.PLAIN_MESSAGE);
}
}
/**
*
*/
public void checkForSave()
{
if(isChanged==true)
if(JOptionPane.NO_OPTION==JOptionPane.showConfirmDialog(
this,"你的当前状态还没保存。保存它?","理发店经营软件",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE))
return;
else saveTempFile();
}
/**
*将临时文件另存
*/
private JFileChooser files;
private String curPath=null;//储存当前地址--只要有过保存的话
private boolean isChanged=false;//看当前状态是否与保存前相同
public void saveAsTempFile()
{
String s=curPath;
try
{
if(curPath!=null)files=new JFileChooser(curPath);
else
files=new JFileChooser();
int result=files.showSaveDialog(this);
File f;
if(result==files.APPROVE_OPTION)
{
f=files.getSelectedFile();
if(f.exists())
if(JOptionPane.NO_OPTION==JOptionPane.showConfirmDialog(
this,f.getName()+"已经存在,覆盖它?","理发店经营软件",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE))
return;
curPath=f.getPath();
ObjectOutputStream o=
new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream(f)));
o.writeObject(dateData);
o.close();
isChanged=false;
saveTempFileAcition.setEnabled(false);
}
}
catch(Exception ex)
{
ex.printStackTrace();
curPath=s;
JOptionPane.showMessageDialog(null,"保存临时文件操作失败","理发店经营软件",JOptionPane.PLAIN_MESSAGE);
}
}
/**
*保存临时文件
*/
public void saveTempFile()
{
try
{
if(curPath!=null)
{
ObjectOutputStream o=
new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream(curPath)));
o.writeObject(dateData);
o.close();
isChanged=false;
saveTempFileAcition.setEnabled(false);
}
else saveAsTempFile();
}
catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"保存临时文件操作失败","理发店经营软件",JOptionPane.PLAIN_MESSAGE);
}
}
/**
*工作事件处理
*/
class WorkAction extends AbstractAction
{
public WorkAction(String name,String tooltip)
{
super(name);
if(tooltip!=null)
putValue(SHORT_DESCRIPTION,tooltip);
}
public void actionPerformed(ActionEvent e)
{
if("新的一天".equals(getValue(NAME)))
{
dateData=new DateData(haircutShop);
checkForSave();
isEndWork=false;
saveTempFileAcition.setEnabled(false);
newDay();
}
else if("营业时间到".equals(getValue(NAME)))
{
dateData.closeShopTime=new Date();
isEndWork=true;
endWorkAction.setEnabled(false);
}
else if("理发师报到".equals(getValue(NAME))||"理发师离开".equals(getValue(NAME))||"顾客开始理发".equals(getValue(NAME))||"顾客结帐离开".equals(getValue(NAME)))
{
String s=JOptionPane.showInputDialog(null,"输入理发师编号:","理发店经营软件",JOptionPane.INFORMATION_MESSAGE);
try
{
if(s!=null)
{
int a=Integer.parseInt(s);
if("理发师报到".equals(getValue(NAME)))
barbercheckIn(a);
else if("顾客开始理发".equals(getValue(NAME)))
buyerBeginHaitcut(a);
else if("顾客结帐离开".equals(getValue(NAME)))
buyerLeaveWithCheckOut(a);
else barberLeave(a);
}
}
catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"输入格式错误","理发店经营软件",JOptionPane.ERROR_MESSAGE);
}
}
else if("新顾客".equals(getValue(NAME)))
{
String s=JOptionPane.showInputDialog(null,"输入顾客选择的级别:","新顾客",JOptionPane.INFORMATION_MESSAGE);
try
{
if(s!=null)
{
int a=Integer.parseInt(s);
newbuyer(a);
}
}
catch(Exception ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"输入格式错误","新顾客",JOptionPane.ERROR_MESSAGE);
}
}
else if("顾客提前离去".equals(getValue(NAME)))
{
new BuyerAdvaceMoveDialog(HaircutShopManage.this,"用户提前离去");
}
else if("顾客更改选择".equals(getValue(NAME)))
{
new BuyerChangeSelectDialog(HaircutShopManage.this,"顾客更改选择");
}
}
}
/**
*实现顾客更改选择的对话框
*/
class BuyerChangeSelectDialog extends JDialog implements ActionListener
{
private JPanel p1,p2,p3,p4,p5;
private JButton sure,cancel;
private JLabel idLabel,levelLabel,newLevelLabel;
private JTextField idText,levelText,newLevelText;
private HaircutShopManage h;
public BuyerChangeSelectDialog(JFrame parent,String title)
{
super(parent,title,true);
if(parent!=null&&parent instanceof HaircutShopManage)
h=(HaircutShopManage)parent;
sure=new JButton("确定");
cancel=new JButton("取消");
levelLabel=new JLabel("输入用户所在的队列的级别:");
idLabel=new JLabel("输入用户在当前队列中的序号:");
newLevelLabel=new JLabel("输入用户新选择的级别:");
idText=new JTextField(10);
levelText=new JTextField(10);
newLevelText=new JTextField(10);
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p5=new JPanel();
p1.add(idLabel);
p1.add(idText);
p2.add(levelLabel);
p2.add(levelText);
p3.add(sure);
p3.add(cancel);
p5.add(newLevelLabel);
p5.add(newLevelText);
sure.addActionListener(this);
cancel.addActionListener(this);
if(parent!=null)
{
Dimension parentSize=parent.getSize();
Point p=parent.getLocation();
setLocation(p.x+parentSize.width/4,p.y+parentSize.height/4);
}
p4=new JPanel(new GridLayout(3,1));
p4.add(p2);
p4.add(p1);
p4.add(p5);
getContentPane().add(p4,BorderLayout.CENTER);
getContentPane().add(p3,BorderLayout.SOUTH);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -