📄 computerview.java
字号:
package View;
/**
* @author 陈佳捷 魏敏杰 黄珧 金俊 唐梁 周靓莹
*/
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import Controll.ComputerController;
import Model.ComputerModel;
import Model.Computer_copyModel;
import java.util.Date;
import java.util.Calendar;
public class ComputerView extends JPanel implements ActionListener{
private JPanel jpMessage;
private JPanel jpCheck;
private JPanel jp;
private JPanel jp1;
private JPanel jp2;
private JPanel box;
private JPanel box1;
private JPanel box2;
private JPanel box3;
private JLabel jlCard;
private JLabel jlCertificate;
private JLabel jlName;
private JLabel jlMoney;
private JLabel jlMessage;
private JLabel jlUser;
private JLabel jlCheck;
private JLabel jlUserTime;
public JTextField jtfCard;
public JTextField jtfCertificate;
public JTextField jtfName;
public JTextField jtfMoney;
public JTextField jtfCheck;
private JButton jbOk;
private JButton jbOk1;
private JButton jbOk2;
private JButton jbOk3;
private JButton jbCheck;
private JButton jbSelect;
private JButton jbhistory;
private JButton jbExit;
private JButton jbRefurbish;
private JOptionPane JOPImport;
private JOptionPane JOPCard;
private JOptionPane JOPCertificate;
private JOptionPane JOPName;
private JOptionPane JOPMoney;
private JDialog MessageDialog;
private JDialog CheckDialog;
private JDialog SelectDialog;
public JTable jtMessage;
public JScrollPane scrollPane;
public JTable jtMessage1;
public JScrollPane scrollPane1;
private JFrame jf;
private int UserTime;
private int CheckTime;
private int LastMoney;
private ComputerController c1;
private Computer_copyModel model1;
/**
* 主函数构造器
* 生成SWING界面
*/
public ComputerView(){
jf=new JFrame();
Container c=jf.getContentPane();
jf.setTitle("便翔网吧管理系统");
jlCard=new JLabel("卡号:");
jlCertificate=new JLabel("身份证:");
jlName=new JLabel("姓名:");
jlMoney=new JLabel("金额:");
jlCheck=new JLabel("卡号:");
jtfCard=new JTextField(5);
jtfCertificate=new JTextField(15);
jtfName=new JTextField(5);
jtfMoney=new JTextField(5);
jtfCheck=new JTextField(5);
jbOk=new JButton("确认");
jbOk1=new JButton("确认");
jbOk2=new JButton("确认");
jbOk3=new JButton("确认");
jbCheck=new JButton("结帐确认");
jbSelect=new JButton("查询");
jbhistory=new JButton("历史记录");
jbExit=new JButton("退出");
jbRefurbish=new JButton("刷新");
jpMessage=new JPanel();
jpMessage.setBackground(new Color(196,231,255));
jpCheck=new JPanel();
jpCheck.setBackground(new Color(196,231,255));
jp=new JPanel();
jp.setLayout(new GridLayout(2,1));
jp1=new JPanel();
jp2=new JPanel();
c1=new ComputerController();
jp1.setLayout(new BorderLayout());
jtMessage=new JTable();
jtMessage.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jtMessage.setPreferredScrollableViewportSize(new Dimension(592, 300));
jtMessage.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
scrollPane = new JScrollPane(jtMessage);
jpMessage.add(jlCard);
jpMessage.add(jtfCard);
jpMessage.add(jlCertificate);
jpMessage.add(jtfCertificate);
jpMessage.add(jlName);
jpMessage.add(jtfName);
jpMessage.add(jlMoney);
jpMessage.add(jtfMoney);
jpMessage.add(jbOk);
jpCheck.add(jlCheck);
jpCheck.add(jtfCheck);
jpCheck.add(jbCheck);
jpCheck.add(jbSelect);
jpCheck.add(jbhistory);
jpCheck.add(jbRefurbish);
jpCheck.add(jbExit);
jp1.add(jpCheck,BorderLayout.WEST);
jp.add(jpMessage);
jp.add(jp1);
jp2.add(jp);
jp2.add(scrollPane);
c.add(jp2);
jbOk.addActionListener(this);
jbOk1.addActionListener(this);
jbOk2.addActionListener(this);
jbOk3.addActionListener(this);
jbCheck.addActionListener(this);
jbSelect.addActionListener(this);
jbhistory.addActionListener(this);
jbExit.addActionListener(this);
jbRefurbish.addActionListener(this);
jf.setSize(new Dimension(600,400));
jf.setVisible(true);
jf.setResizable(false);
}
/**
* 事件处理
*
*/
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jbOk)
{
if(jtfCard.getText().equals("")||jtfCertificate.getText().equals("")||jtfName.getText().equals("")||jtfMoney.getText().equals(""))
{
JOPImport=new JOptionPane();
JOptionPane.showMessageDialog(this,"输入不能为空,请重新输入!");
return;
}else{
c1.insertData();
c1.model=c1.loadModel();
jtMessage.setModel(c1.model);
}
if(Integer.parseInt(jtfCard.getText())<=150&0<Integer.parseInt(jtfCard.getText())&&jtfCard.getText()!=null)
{
//this.showMessageDiolag();
}else{
JOPCard=new JOptionPane();
JOptionPane.showMessageDialog(this,"卡号不正确,请重新输入!");
return;
}
if(this.validateID(jtfCertificate.getText()))
{
//this.showMessageDiolag();
}else{
JOPCertificate=new JOptionPane();
JOptionPane.showMessageDialog(this,"身份证不正确,请重新输入!");
return;
}
if(!jtfName.getText().equals("")&&this.validateName(jtfName.getText()))
{
//this.showMessageDiolag();
}else{
JOPName=new JOptionPane();
JOptionPane.showMessageDialog(this,"名字不正确,请重新输入!");
return;
}
if(Double.parseDouble(jtfMoney.getText())>=10&&jtfMoney.getText()!=null)
{
//this.showMessageDiolag();
}else{
JOPMoney=new JOptionPane();
JOptionPane.showMessageDialog(this,"钱不够,请重新输入!");
return;
}
this.showMessageDialog();
jtfCard.setText("");
jtfCertificate.setText("");
jtfName.setText("");
jtfMoney.setText("");
}
if(e.getSource()==jbCheck)
{
if(Integer.parseInt(jtfCheck.getText())<=150&0<Integer.parseInt(jtfCheck.getText())&&jtfCheck.getText()!=null)
//if(jtfCheck.getText().equals(i))
{
c1.CheckModel();
c1.model=c1.loadModel();
jtMessage.setModel(c1.model);
jtfCheck.setText("");
}else{
JOPCard=new JOptionPane();
JOptionPane.showMessageDialog(this,"卡号不正确,请重新输入!");
return;
}
}
if(e.getSource()==jbSelect)
{
if(Integer.parseInt(jtfCheck.getText())<=150&0<Integer.parseInt(jtfCheck.getText())&&jtfCheck.getText()!=null)
{
c1.SelectModel();
jtfCheck.setText("");
}else{
JOPCard=new JOptionPane();
JOptionPane.showMessageDialog(this,"卡号不正确,请重新输入!");
return;
}
}
if(e.getSource()==jbhistory)
{
if(Integer.parseInt(jtfCheck.getText())<=150&0<Integer.parseInt(jtfCheck.getText())&&jtfCheck.getText()!=null)
{
showSelectHistoryTable();
c1.model1=c1.loadHistoryModel();
setModel(c1.model1);
jtfCheck.setText("");
}else{
JOPCard=new JOptionPane();
JOptionPane.showMessageDialog(this,"卡号不正确,请重新输入!");
return;
}
}
if(e.getSource()==jbRefurbish)
{
c1.model=c1.loadModel();
jtMessage.setModel(c1.model);
}
if(e.getSource()==jbOk1)
{
MessageDialog.setVisible(false);
}
if(e.getSource()==jbOk2)
{
CheckDialog.setVisible(false);
}
if(e.getSource()==jbOk3)
{
SelectDialog.setVisible(false);
}
if(e.getSource()==jbExit)
{
jf.setVisible(false);
}
}
/**
* 身份证的输入验证函数
* @param str
* @return false
*/
public boolean validateID(String str){
if(str==null||str.length()!=18)
return false;
//toCharArray()将此字符串转换为一个新的字符数组
char [] charArray = str.toCharArray();
for(int i=0;i<charArray.length;i++){
if(i < charArray.length-1){
//isDigit确定指定字符是否为数字
if(!Character.isDigit(charArray[i])){
return false;
}
}else{
if(!Character.isDigit(charArray[i])&&(charArray[i] != 'x')){
return false;
}
}
}
return true;
}
/**
* 用户姓名的输入验证函数
* @param str
* @return false
*/
public boolean validateName(String str){
char [] charArray = str.toCharArray();
for(int i=0;i<charArray.length;i++)
if(Character.isDigit(charArray[i]))
return false;
return true;
}
/**
* 当用户登陆成功时,所显示的对话框的方法
*
*/
public void showMessageDialog()
{
MessageDialog=new JDialog(jf,"便翔网吧登入人员的信息");
box=new JPanel();
box.setLayout(new BoxLayout(box,BoxLayout.Y_AXIS));
jlMessage=new JLabel("上机登入信息:");
jlCard=new JLabel("卡号为:"+jtfCard.getText());
jlCertificate=new JLabel("身份证为:"+jtfCertificate.getText());
jlName=new JLabel("姓名:"+jtfName.getText());
jlMoney=new JLabel("交纳金额:"+jtfMoney.getText()+"元");
Calendar rightNow = Calendar.getInstance();
jlUserTime=new JLabel("用户登入的时间:"+rightNow.getTime());
jlUser=new JLabel("用户登入成功!");
UserTime= (int) System.currentTimeMillis()/60000;
box.add(jlMessage);
box.add(jlCard);
box.add(jlCertificate);
box.add(jlName);
box.add(jlMoney);
box.add(jlUserTime);
box.add(jbOk1);
MessageDialog.add(box);
MessageDialog.setLocation(200,150);
MessageDialog.pack();
MessageDialog.setVisible(true);
MessageDialog.setResizable(false);
MessageDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
MessageDialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
MessageDialog.setVisible(false);
}
});
}
/**
* 用户结帐时,所显示的对话框的方法
* @throws SQLException
*/
public void showCheckDialog() throws SQLException
{
CheckDialog=new JDialog(jf, "便翔网吧结帐的情况");
box1=new JPanel();
box1.setLayout(new BoxLayout(box1,BoxLayout.Y_AXIS));
jlMessage=new JLabel("上机结帐的信息:");
jlCard=new JLabel("卡号:"+c1.rs1.getString(2));
jlCertificate=new JLabel("身份证:"+c1.rs1.getString(3));
jlName=new JLabel("姓名:"+c1.rs1.getString(4));
Calendar rightNow = Calendar.getInstance();
jlUserTime=new JLabel("用户结帐的时间:"+rightNow.getTime());
jlUser=new JLabel("用户结帐完成!");
CheckTime=(int) System.currentTimeMillis()/60000;
LastMoney=Integer.parseInt(c1.rs1.getString(5))-((CheckTime-UserTime)/30*2);
jlMoney=new JLabel("结帐后余额:"+LastMoney+"元");
box1.add(jlMessage);
box1.add(jlCard);
box1.add(jlCertificate);
box1.add(jlName);
box1.add(jlMoney);
box1.add(jlUserTime);
box1.add(jlUser);
box1.add(jbOk2);
CheckDialog.add(box1);
CheckDialog.setLocation(200,150);
CheckDialog.pack();
CheckDialog.setVisible(true);
CheckDialog.setResizable(false);
CheckDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
CheckDialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
CheckDialog.setVisible(false);
}
});
}
/**
* 查询用户卡号时,所显示的对话框的方法
* @throws SQLException
*/
public void showSelectDialog() throws SQLException
{
SelectDialog=new JDialog(jf,"便翔网吧查询的情况");
box2=new JPanel();
box2.setLayout(new BoxLayout(box2,BoxLayout.Y_AXIS));
jlMessage=new JLabel("查询后的信息:");
jlCard=new JLabel("卡号:"+c1.rs1.getString(2));
jlCertificate=new JLabel("身份证:"+c1.rs1.getString(3));
jlName=new JLabel("姓名:"+c1.rs1.getString(4));
jlMoney=new JLabel("交纳金额:"+c1.rs1.getString(5)+"元");
jlUserTime=new JLabel("用户登入的时间:"+c1.rs1.getString(6));
box2.add(jlMessage);
box2.add(jlCard);
box2.add(jlCertificate);
box2.add(jlName);
box2.add(jlMoney);
box2.add(jlUserTime);
box2.add(jbOk3);
SelectDialog.add(box2);
SelectDialog.setLocation(200,150);
SelectDialog.pack();
SelectDialog.setVisible(true);
SelectDialog.setResizable(false);
SelectDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
SelectDialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
SelectDialog.setVisible(false);
}
});
}
/**
* 查看历史记录时,所显示的对话框的方法
*
*/
public void showSelectHistoryTable()
{
JFrame jf1=new JFrame("历史记录查询");
Container c2=jf1.getContentPane();
box3=new JPanel();
jtMessage1=new JTable();
jtMessage1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jtMessage1.setPreferredScrollableViewportSize(new Dimension(592, 300));
jtMessage1.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
scrollPane1 = new JScrollPane(jtMessage1);
box3.add(scrollPane1);
c2.add(box3);
jf1.setVisible(true);
jf1.pack();
jf1.setResizable(false);
}
public void setModel(ComputerModel model){
jtMessage.setModel(model);
}
public void setModel(Computer_copyModel model1){
jtMessage1.setModel(model1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -