?? bank.java
字號:
// 銀行定期儲蓄管理系統
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
class MoneyFrame extends JFrame implements ItemListener{
JMenuBar mb=new JMenuBar();
JPanel acpanel=new JPanel();
JPanel takepanel =new JPanel ();
JPanel promptpanel=new JPanel();
JTextField prompt =new JTextField(90);
JLabel aclabel =new JLabel("用戶存款信息",JLabel.CENTER);
JLabel takelabel =new JLabel("用戶取款信息",JLabel.CENTER);
JPanel tablepanel1=new JPanel();
JPanel tablepanel2=new JPanel();
JLabel[]heading1=new JLabel[10];
JLabel[]heading2=new JLabel[4];
JScrollPane sp ;
JCheckBox gua=new JCheckBox("是",false);
JComboBox category=new JComboBox();
JTextField[]accountField=new JTextField[8];
JTextField[]takeField=new JTextField[4];
OneUser asd=new OneUser();
FileNameDialog dialogs= new FileNameDialog();
int acdate=0, tadate=0;
int sign=1; //當前狀態 1為已貯存
MoneyFrame(){
super("銀行定期儲蓄管理系統");
//創建"新建存款文件"菜單項圖標
Icon new1Icon=new ImageIcon("new1.gif","新建存款文件");
//創建"新建取款文件"菜單項圖標
Icon new2Icon=new ImageIcon("new2.gif","新建取款文件");
//創建"open"菜單項圖標
Icon openIcon =new ImageIcon("open.gif","open");
Icon saveIcon=new ImageIcon("save.gif","save");
JMenu fileMenu = new JMenu("文件"); //創建"文件"菜單
fileMenu.setFont(new Font("楷體_GB2312",Font.PLAIN,20));
JMenuItem newMI1st= new JMenuItem("新建存款文件",new1Icon); //創建"新建存款文件"菜單項
JMenuItem newMI2st= new JMenuItem("新建取款文件",new2Icon); //創建"新建取款文件"菜單項
JMenuItem openMI = new JMenuItem("打開", openIcon); //創建"打開"菜單項
JMenuItem saveMI = new JMenuItem("保存",saveIcon); //創建"保存"菜單項
JMenuItem exitMI = new JMenuItem("退出", 'x'); //創建"退出"菜單項,它有助記鍵x
fileMenu.add(newMI1st); fileMenu.add(newMI2st); fileMenu.add(openMI);
fileMenu.add(saveMI);
fileMenu.addSeparator(); //添加分隔線
fileMenu.add(exitMI);
newMI1st.setFont(new Font("楷體_GB2312",Font.BOLD,20));
newMI2st.setFont(new Font("楷體_GB2312",Font.BOLD,20));
openMI.setFont(new Font("楷體_GB2312",Font.BOLD,20));
saveMI.setFont(new Font("楷體_GB2312",Font.BOLD,20));
exitMI.setFont(new Font("楷體_GB2312",Font.BOLD,20));
//為'新建存款文件'菜單項安裝動作監聽器
NewAccListener nfl=new NewAccListener(); newMI1st.addActionListener(nfl);
//為'新建取款文件'菜單項安裝動作監聽器
NewtakeFieldListener ntl=new NewtakeFieldListener(); newMI2st.addActionListener(ntl);
//為'打開'菜單項安裝動作監聽器
OpenListener ol = new OpenListener(); openMI.addActionListener(ol);
//為'保存'菜單項安裝動作監聽器
SaveListener sl = new SaveListener(); saveMI.addActionListener(sl);
//為'退出'菜單項安裝動作監聽器
exitMI.addActionListener(new ExitListener());
mb.add(fileMenu); //將'文件'菜單加入菜單條
setJMenuBar(mb); //將菜單條加入窗口
//設計存款表格的面板
acpanel.setBounds(30,0,600,25);
acpanel.add(aclabel);
aclabel.setFont(new Font("華文彩云",Font.BOLD,17));
tablepanel1.setBounds(30,28,600,270);
tablepanel1.setLayout(new GridLayout(5,4));
heading1[0]=new JLabel("姓名",JLabel.CENTER);
heading1[1]=new JLabel("密碼",JLabel.CENTER);
heading1[2]=new JLabel("賬號",JLabel.CENTER);
heading1[3]=new JLabel("地址",JLabel.CENTER);
heading1[4]=new JLabel("本金",JLabel.CENTER);
heading1[5]=new JLabel("儲種",JLabel.CENTER);
heading1[6]=new JLabel("存款日期",JLabel.CENTER);
heading1[7]=new JLabel("掛失",JLabel.CENTER);
heading1[8]=new JLabel("掛失日期",JLabel.CENTER);
heading1[9]=new JLabel("營業員",JLabel.CENTER);
for(int i=0;i< heading1.length;i++){heading1[i].setFont(new Font("楷體_GB2312",Font.PLAIN,20));
heading1[i].setForeground(Color.blue);}
category.addItem("");
category.addItem(" 1 年");
category.addItem(" 3 年");
category.addItem(" 5 年");
category.addItemListener(this);
category.setFont(new Font("楷體_GB2312",Font.BOLD,20));
gua.addActionListener(new GuaListener());
for(int k=0;k<8;k++){accountField[k]=new JTextField();
accountField[k].setFont(new Font("楷體",Font.PLAIN,20));}
int j=0;
for(int i =0;i<10;i++){
tablepanel1.add(heading1[i]);
if(i==5){tablepanel1.add(category);}
else{
if(i==7)tablepanel1.add(gua);
else tablepanel1.add(accountField[j++]);
} }
accountField[4].addFocusListener(new TextFieldListener());
//設計取款表格的面板
takepanel.setBounds(30,300,600,25);
takepanel.add(takelabel);
takelabel.setFont(new Font("華文彩云",Font.BOLD,17));
tablepanel2.setBounds(30,330,600,100);
tablepanel2.setLayout(new GridLayout(2,4));
heading2[0]=new JLabel("取款日期",JLabel.CENTER);
heading2[1]=new JLabel("利息",JLabel.CENTER);
heading2[2]=new JLabel("取款總額",JLabel.CENTER);
heading2[3]=new JLabel("營業員 ",JLabel.CENTER);
for(int i=0;i< heading2.length;i++){heading2[i].setFont(new Font("楷體_GB2312",Font.PLAIN,20));
heading2[i].setForeground(Color.blue);}
for(int k=0;k<4;k++){takeField[k]=new JTextField();
takeField[k].setFont(new Font("楷體",Font.PLAIN,20));
}
for(int i=0;i<4;i++){
tablepanel2.add(heading2[i]);
tablepanel2.add(takeField[i]);
}
//設置提示窗口及其面板
promptpanel.setBounds(30,430,600,35);
promptpanel.add(prompt);
prompt.setFont(new Font("幼圓",Font.BOLD,26));
prompt.setForeground(Color.red);
prompt.setHorizontalAlignment(JTextField.CENTER);
//將表格面板加入滾動板
JPanel all=new JPanel();
sp= new JScrollPane(
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
//將標題面板headPanel,滾動板sp,提示面板promptPanel加入主窗口
Container contentPane = getContentPane();
contentPane.add(acpanel);
contentPane.add(tablepanel1);
contentPane.add(takepanel);
contentPane.add(tablepanel2);
contentPane.add(promptpanel);
contentPane.add(sp);
for(int i=0;i<8;i++)accountField[i].setEditable(true);
for(int f=0;f<takeField.length;f++)takeField[f].setEditable(true);
// addWindowListener(new MainWindowListener());
//設置窗口大小
setSize(700,560);
} //構造方法MoneyFrame()聲明結束
//監聽儲種
public void itemStateChanged(ItemEvent e){
if(e.getStateChange()==ItemEvent.SELECTED){
String typename=(String)e.getItem();
if( typename.equals(" 1 年"))asd.type=1;
if( typename.equals(" 3 年"))asd.type=3;
if( typename.equals(" 5 年"))asd.type=5;
}
}
//監聽掛失
class GuaListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if(gua.isSelected()){
asd.cancelmoney=1;
Calendar calendar=Calendar.getInstance();
accountField[6].setText(Integer.toString(calendar.get(Calendar.YEAR))+"年"+
Integer.toString(calendar.get(Calendar.MONTH)+1)+"月"
+Integer.toString(calendar.get(Calendar.DATE))+"日");
accountField[6].setEditable(false);
}else{asd.cancelmoney=0;
accountField[6].setText("");
}
}}
class TextFieldListener implements FocusListener{
public void focusGained(FocusEvent e){}
public void focusLost(FocusEvent e){
try{
JTextField num=(JTextField)e.getSource();
String money=num.getText();
int ph=Integer.valueOf(money).intValue();
}
catch(Exception ie){prompt.setText("輸入的錢必須是整數");
accountField[4].setText("");
}
}}
//監聽存款
class NewAccListener implements ActionListener{
public void actionPerformed(ActionEvent e){
SaveDialog pause=new SaveDialog();
if(sign==0){pause.show();}
for(int i=0;i<8;i++)accountField[i].setText("");//對表格初始化
prompt.setText("");
accountField[1].setVisible(true);
for(int i=0;i<8;i++)accountField[i].setEditable(true);
asd.cancelmoney=0;
asd.state=0;
acdate=(int)Math.round(System.currentTimeMillis()/86400000);
asd.dates=acdate;
Calendar calendar=Calendar.getInstance();
accountField[5].setText(Integer.toString(calendar.get(Calendar.YEAR))+"年"+
Integer.toString(calendar.get(Calendar.MONTH)+1)+"月"
+Integer.toString(calendar.get(Calendar.DATE))+"日");
accountField[6].setEditable(false);
acpanel.setVisible(true);
tablepanel1.setVisible(true);
takepanel.setVisible(false);
tablepanel2.setVisible(false);
repaint();
sign=0;
} }
class SaveDialog extends JDialog{
Icon alert=new ImageIcon("alert.gif");
JLabel Quelabel=new JLabel("要保存嗎?",alert,JLabel.CENTER);
JButton yes=new JButton("是");
JButton no=new JButton("否");
SaveDialog(){
super(MoneyFrame.this,"銀行定期儲蓄管理系統",true);
JPanel aaa=new JPanel();
JPanel bbb=new JPanel();
aaa.add(Quelabel);
Container dialogs=getContentPane();
dialogs.add("Center",aaa);
Quelabel.setFont(new Font("楷體",Font.PLAIN,20));
yes.addActionListener(new SureListener());
no.addActionListener(new SureListener());
bbb.add(yes); bbb.add(no);
dialogs.add("South",bbb);
yes.setFont(new Font("楷體",Font.PLAIN,15));
no.setFont(new Font("楷體",Font.PLAIN,15));
setBounds(200,200,300,150);
addWindowListener(new DialogWindowListener());
}
class SureListener implements ActionListener{
public void actionPerformed(ActionEvent e){
Object source = e.getSource();
if(source == yes){
save(); }
dispose();
}
}
}//對話框類SaveDialog的聲明結束
//對話框類FileNameDialog
class FileNameDialog extends JDialog{
JLabel fileNameLabel = new JLabel("姓名", JLabel.CENTER);
JTextField fileNameTF = new JTextField(15);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -