📄 mainframe.java
字号:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.event.*;
import javax.swing.border.LineBorder;
import java.io.*;
import java.net.*;
public class MainFrame {
Socket Clientsock;
CustomerThread st;
JFrame f = new JFrame();
Font font=new Font("Serif",Font.ITALIC|Font.BOLD,25);
JPanel Left = new JPanel();
JPanel Caption = new JPanel();
Clock2 clockPanel=new Clock2("clock");
Font buttonfont=new Font("Serif",Font.BOLD,18);
Icon exit1 = new ImageIcon(".\\gif\\exit.jpg");
Icon exit2= new ImageIcon(".\\gif\\exit_over.jpg");
Icon exit3= new ImageIcon(".\\gif\\exit_down.jpg");
Icon read1= new ImageIcon(".\\gif\\read.jpg");
Icon read2= new ImageIcon(".\\gif\\read_over.jpg");
Icon read3= new ImageIcon(".\\gif\\read_down.jpg");
Icon pick1= new ImageIcon(".\\gif\\pick.jpg");
Icon pick2= new ImageIcon(".\\gif\\pick_over.jpg");
Icon pick3= new ImageIcon(".\\gif\\pick_down.jpg");
Icon turn1= new ImageIcon(".\\gif\\turn.jpg");
Icon turn2= new ImageIcon(".\\gif\\turn_over.jpg");
Icon turn3= new ImageIcon(".\\gif\\turn_down.jpg");
Icon quary1= new ImageIcon(".\\gif\\quary.jpg");
Icon quary2= new ImageIcon(".\\gif\\quary_over.jpg");
Icon quary3= new ImageIcon(".\\gif\\quary_down.jpg");
Icon pass1= new ImageIcon(".\\gif\\pass.jpg");
Icon pass2= new ImageIcon(".\\gif\\pass_over.jpg");
Icon pass3= new ImageIcon(".\\gif\\pass_down.jpg");
Icon exit4= new ImageIcon(".\\gif\\exit_disb.jpg");
Icon read4= new ImageIcon(".\\gif\\read_disb.jpg");
Icon pick4= new ImageIcon(".\\gif\\pick_disb.jpg");
Icon turn4= new ImageIcon(".\\gif\\turn_disb.jpg");
Icon quary4= new ImageIcon(".\\gif\\quary_disb.jpg");
Icon pass4= new ImageIcon(".\\gif\\pass_disb.jpg");
public JButton CmdRead=new JButton();
public JButton CmdMoney=new JButton();
public JButton CmdQuary=new JButton();
public JButton CmdChange=new JButton();
public JButton CmdPass=new JButton();
public JButton CmdCard=new JButton();
JLabel Title=new JLabel("欢迎使用ATM自动柜员机");
Icon imgCaption=new ImageIcon(".\\title\\welcome.gif");
JLabel picCaption=new JLabel(imgCaption);
JPanel cardPanel=new JPanel();
private ActionListener listener=new ActionResponse();
JSplitPane Split1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,false,Caption,cardPanel);
JSplitPane Split= new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false, Left,Split1);
//pane
PickPane CardPick;
ChangePane CardChange;
QuaryPane CardQuary=new QuaryPane(f);
PasswordPane CardPassword;
Welcome welcome;
public MainFrame()
{
Container Form1 = f.getContentPane();
f.setSize(650,450);
Left.setLayout(null);
Form1.setLayout(null);
Caption.setLayout(null);
Caption.add(picCaption);
picCaption.setBounds(0,5,500,55);
//welcome.setLayout(null);
Split.setBounds(0,0,800,500);
Split.setOneTouchExpandable(false);
Split.setDividerSize(5);
Split.setDividerLocation(0.17);
Split1.setBounds(0,0,800,500);
Split1.setOneTouchExpandable(false);
Split1.setDividerSize(5);
Split1.setDividerLocation(0.13);
Form1.add(Split);
Title.setFont(font);
Title.setForeground(Color.blue);
Title.setBounds(60,10,380,30);
CmdRead.setRolloverEnabled(true);
CmdQuary.setRolloverEnabled(true);
CmdMoney.setRolloverEnabled(true);
CmdChange.setRolloverEnabled(true);
CmdPass.setRolloverEnabled(true);
CmdCard.setRolloverEnabled(true);
CmdRead.setIcon(read1);
CmdQuary.setIcon(quary1);
CmdMoney.setIcon(pick1);
CmdChange.setIcon(turn1);
CmdPass.setIcon(pass1);
CmdCard.setIcon(exit1);
CmdRead.setRolloverIcon(read2);
CmdQuary.setRolloverIcon(quary2);
CmdMoney.setRolloverIcon(pick2);
CmdChange.setRolloverIcon(turn2);
CmdPass.setRolloverIcon(pass2);
CmdCard.setRolloverIcon(exit2);
CmdRead.setPressedIcon(read3);
CmdQuary.setPressedIcon(quary3);
CmdMoney.setPressedIcon(pick3);
CmdChange.setPressedIcon(turn3);
CmdPass.setPressedIcon(pass3);
CmdCard.setPressedIcon(exit3);
CmdRead.setDisabledIcon(read4);
CmdQuary.setDisabledIcon(quary4);
CmdMoney.setDisabledIcon(pick4);
CmdChange.setDisabledIcon(turn4);
CmdPass.setDisabledIcon(pass4);
CmdCard.setDisabledIcon(exit4);
CmdRead.setBorder(null);
CmdQuary.setBorder(null);
CmdMoney.setBorder(null);
CmdChange.setBorder(null);
CmdPass.setBorder(null);
CmdCard.setBorder(null);
CmdRead.setBounds(10,20,120,35);
CmdRead.addActionListener(listener);
CmdQuary.setBounds(10,70,120,35);
CmdQuary.addActionListener(listener);
CmdChange.setBounds(10,120,120,35);
CmdChange.addActionListener(listener);
CmdMoney.setBounds(10,170,120,35);
CmdMoney.addActionListener(listener);
CmdPass.setBounds(10,220,120,35);
CmdPass.addActionListener(listener);
CmdCard.setBounds(10,270,120,35);
CmdCard.addActionListener(listener);
CmdQuary.setFont(buttonfont);
CmdChange.setFont(buttonfont);
CmdCard.setFont(buttonfont);
CmdMoney.setFont(buttonfont);
CmdPass.setFont(buttonfont);
CmdRead.setFont(buttonfont);
cardPanel.setLayout(new CardLayout());
cardPanel.setBounds(5,40,780,480);
clockPanel.setBounds(20,320,100,100);
try {
Clientsock= new Socket((new ReadConfig()).getBankSrvIP(),6688);
st = new CustomerThread(Clientsock,CardQuary,f,this);
st.start();
}
catch(IOException e)
{JOptionPane.showMessageDialog(f,"与服务器连接出错,请确定服务器网络配置正确并且服务端已运行!", "提示:", JOptionPane.INFORMATION_MESSAGE);}
CardChange = new ChangePane(f,st);
CardPassword = new PasswordPane(f,st);
CardPick = new PickPane(f,st);
welcome = new Welcome(f,st);
Left.add(CmdRead);
Left.add(CmdQuary);
Left.add(CmdChange);
Left.add(CmdCard);
Left.add(CmdMoney);
Left.add(CmdPass);
Left.add(clockPanel);
init();
Thread clockThread;
clockThread=new Thread(clockPanel);
clockThread.start();
cardPanel.add("CardWelcome",welcome);
cardPanel.add("CardPick",CardPick);
cardPanel.add("CardChange",CardChange);
cardPanel.add("CardQuary",CardQuary);
cardPanel.add("CardPassword",CardPassword);
f.setTitle("ATM Client");
f.setLocation(100,80);
f.setResizable(false);
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
class ActionResponse implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
if (e.getSource()==CmdRead)
ReadCard();
if (e.getSource()==CmdMoney)
Pick();
if (e.getSource()==CmdQuary)
Quary();
if (e.getSource()==CmdChange)
Change();
if (e.getSource()==CmdPass)
Password();
if (e.getSource()==CmdCard)
OutCard();
}
}
public void init()
{
CmdQuary.setEnabled(false);
CmdChange.setEnabled(false);
CmdMoney.setEnabled(false);
CmdPass.setEnabled(false);
CmdCard.setEnabled(false);
welcome.l2.setVisible(false);
welcome.l3.setVisible(false);
welcome.txtPass.setVisible(false);
welcome.txtCardID.setVisible(false);
}
public void EnableButton()
{
CmdQuary.setEnabled(true);
CmdChange.setEnabled(true);
CmdMoney.setEnabled(true);
CmdPass.setEnabled(true);
CmdCard.setEnabled(true);
}
private void ReadCard()
{
((CardLayout)cardPanel.getLayout()).show(cardPanel,"CardWelcome");
welcome.ReadAtm();
}
private void Pick()
{
((CardLayout)cardPanel.getLayout()).show(cardPanel,"CardPick");
}
private void Quary()
{
try{
st.SendQuary();
}
catch(IOException e){System.out.println("error when sendquary");}
((CardLayout)cardPanel.getLayout()).show(cardPanel,"CardQuary");
}
private void Change()
{
((CardLayout)cardPanel.getLayout()).show(cardPanel,"CardChange");
CardChange.txtCard.setText(st.Card);
}
private void Password()
{
((CardLayout)cardPanel.getLayout()).show(cardPanel,"CardPassword");
CardPassword.txtCard.setText(st.Card);
}
private void OutCard()
{
String title = "请确定";
int type = JOptionPane.INFORMATION_MESSAGE;
String[] options={"确定","取消"};
int optionType=JOptionPane.YES_NO_OPTION;
int messageType=JOptionPane.QUESTION_MESSAGE;
String message = "你真的要取卡退出吗?\n东大银行提醒您不要忘记取出ATM卡及打印的取款条!";
int result = JOptionPane.showOptionDialog(f,message, title, optionType,messageType,null,options,options[1]);
if (result == JOptionPane.YES_OPTION)
{init();welcome.Init_State();}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -