📄 mainwindow.java
字号:
}
Object[] columnName={"机器号码","会员卡号","会员名称","上机时间","已过时间","已消费金额","卡号金额","当前余额"};
TableModel tableModel=new DefaultTableModel(cells,columnName);
return tableModel;
}
/**
* This method initializes txtSouth
*
* @return javax.swing.JTextField
*/
private JTextField getTxtSouth() {
if (txtSouth == null) {
txtSouth = new JTextField();
txtSouth.setHorizontalAlignment(JTextField.RIGHT);
txtSouth.setEditable(false);
txtSouth.setBackground(SystemColor.controlLtHighlight);
}
return txtSouth;
}
/**
* This method initializes mitBooking
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMitBooking() {
if (mitBooking == null) {
mitBooking = new JMenuItem();
mitBooking.setText("登记");
mitBooking.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
PCWindow pc=new PCWindow();
pc.getJFrame().setVisible(true);
}
});
}
return mitBooking;
}
/**
* This method initializes mnuQuery
*
* @return javax.swing.JMenu
*/
private JMenu getMnuQuery() {
if (mnuQuery == null) {
mnuQuery = new JMenu();
mnuQuery.setText("查询记录");
mnuQuery.add(getMitCustomerInfo());
mnuQuery.add(getMitAddRecord());
mnuQuery.addSeparator();
mnuQuery.add(getMitPCBooking());
mnuQuery.add(getMitConsumeInfo());
mnuQuery.addSeparator();
mnuQuery.add(getMitForceOffLine());
}
return mnuQuery;
}
/**
* This method initializes mitCustomerInfo
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMitCustomerInfo() {
if (mitCustomerInfo == null) {
mitCustomerInfo = new JMenuItem();
mitCustomerInfo.setText("会员信息");
mitCustomerInfo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
QueryCustomerWin qcw=new QueryCustomerWin();
qcw.getJFrame().setVisible(true);
}
});
}
return mitCustomerInfo;
}
/**
* This method initializes mitAddRecord
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMitAddRecord() {
if (mitAddRecord == null) {
mitAddRecord = new JMenuItem();
mitAddRecord.setText("冲值情况");
mitAddRecord.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
QueryAddMoneyWin qamw=new QueryAddMoneyWin();
qamw.getJFrame().setVisible(true);
}
});
}
return mitAddRecord;
}
/**
* This method initializes mitPCBooking
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMitPCBooking() {
if (mitPCBooking == null) {
mitPCBooking = new JMenuItem();
mitPCBooking.setText("机器信息");
mitPCBooking.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
QueryPCWin qpcw=new QueryPCWin();
qpcw.getJFrame().setVisible(true);
}
});
}
return mitPCBooking;
}
/**
* This method initializes mitForceOffLine
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMitForceOffLine() {
if (mitForceOffLine == null) {
mitForceOffLine = new JMenuItem();
mitForceOffLine.setText("强制下机");
mitForceOffLine.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
ForceOffLineWin folWin=new ForceOffLineWin();
folWin.getJFrame().setVisible(true);
}
});
}
return mitForceOffLine;
}
/**
* This method initializes mitConsumeInfo
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMitConsumeInfo() {
if (mitConsumeInfo == null) {
mitConsumeInfo = new JMenuItem();
mitConsumeInfo.setText("消费历史");
mitConsumeInfo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
QueryConsumeWin qcw=new QueryConsumeWin();
qcw.getJFrame().setVisible(true);
}
});
}
return mitConsumeInfo;
}
/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
MainWindow application = new MainWindow();
application.getJFrame().setVisible(true);
}
});
}
/**
* This method initializes jFrame
*
* @return javax.swing.JFrame
*/
JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
jFrame.setBounds(new Rectangle(80, 80, 834, 572));
jFrame.setJMenuBar(getJJMenuBar());
jFrame.setContentPane(getJPanel1());
jFrame.setTitle("网吧计费管理系统");
jFrame.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
int answer=JOptionPane.showConfirmDialog(jFrame,"确定退出吗?","退出提示",JOptionPane.YES_NO_OPTION);
if(answer==0) //选择了'是'则退出
System.exit(0);
}
public void windowOpened(java.awt.event.WindowEvent e) {
consumeMonitor conMon=new consumeMonitor();
conMon.setPriority(6); //优先级略高于其它动态显示时间的线程
conMon.start();
}
});
}
return jFrame;
}
/**
* This method initializes jJMenuBar
*
* @return javax.swing.JMenuBar
*/
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.add(getMnuCustomer());
jJMenuBar.add(getMnuOperator());
jJMenuBar.add(getMnuQuery());
jJMenuBar.add(getMnuAbout());
}
return jJMenuBar;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getMnuAbout() {
if (mnuAbout == null) {
mnuAbout = new JMenu();
mnuAbout.setText("关于");
mnuAbout.add(getMitVersion());
mnuAbout.add(getMnuExit());
}
return mnuAbout;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMnuExit() {
if (mnuExit == null) {
mnuExit = new JMenuItem();
mnuExit.setText("退出");
mnuExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int answer=JOptionPane.showConfirmDialog(jFrame,"确定退出吗?","退出提示",JOptionPane.YES_NO_OPTION);
if(answer==0) //选择了'是'则退出
System.exit(0);
}
});
}
return mnuExit;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getMitVersion() {
if (mitVersion == null) {
mitVersion = new JMenuItem();
mitVersion.setText("版本");
mitVersion.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog aboutDialog = getAboutDialog();
aboutDialog.pack();
Point loc = getJFrame().getLocation();
loc.translate(20, 20);
aboutDialog.setLocation(loc);
aboutDialog.setVisible(true);
}
});
}
return mitVersion;
}
/**
* This method initializes aboutDialog
*
* @return javax.swing.JDialog
*/
private JDialog getAboutDialog() {
if (aboutDialog == null) {
aboutDialog = new JDialog(getJFrame(), true);
aboutDialog.setTitle("关于");
aboutDialog.setPreferredSize(new Dimension(300, 200));
aboutDialog.setBounds(new Rectangle(0, 0, 336, 171));
aboutDialog.setContentPane(getJPanel());
}
return aboutDialog;
}
public void run()
{
while(true)
{
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
txtSouth.setText("当前日期与时间:"+CurrentTime.getChinaZoneTime()+" ");
}
}
private class consumeMonitor extends Thread
{//内部类
public void run()
{
while(true)
{
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
for(int i=0;i<jTable.getRowCount();i++)
{
String cusCardNum=(String)jTable.getValueAt(i, 1);
if(!(cusCardNum==null))
{//即时扣费写在此处即可
IConsumeDomain coDomain=new ConsumeDomainImpl();
ConsumeBean coBean=new ConsumeBean();
String conPCNum=(String)jTable.getValueAt(i, 0);
String conCardNum=(String)jTable.getValueAt(i, 1);
String conName=(String)jTable.getValueAt(i, 2);
String startTime=(String)jTable.getValueAt(i, 3);
String endTime=CurrentTime.getCurTime();
double conMoney=CalcTime.getOnUseMinute(startTime, endTime);
jTable.setValueAt(conMoney, i, 5);
double cusBalance=(Double.parseDouble(String.valueOf(jTable.getValueAt(i, 6))))-conMoney;
coBean.setConPCNum(conPCNum);
coBean.setConCardNum(conCardNum);
coBean.setConName(conName);
coBean.setConStartTime(startTime);
//coBean.setConEndTime(endTime);
coBean.setConMoney(String.valueOf(conMoney));
coBean.setConCurrentBalance(String.valueOf(cusBalance));
ICustomerDomain cDomain=new CustomerDomainImpl();
CustomerBean cBean=new CustomerBean();
if(cusBalance<=0.0)
{//剩余金额小于0则强制下机 [更新机器状态和会员状态及会员金额(设置为0即可)]
IPCDomain pcDomain=new PCDomainImpl();
pcDomain.updatePCState("0", (String)jTable.getValueAt(i, 0));
//更新会员卡号金额及状态
cBean.setCusBalance("0.0"); //String.valueOf(cusBalance)
cBean.setCusCardNum(cusCardNum);
cDomain.updateBalance(cBean);
cDomain.updateCardState("0", cusCardNum);
//更新consume消费表中下机时间和消费金额的字段(startTime、pcNum两个字段成组合键)
coBean.setConEndTime(endTime); //真下机
coBean.setConCurrentBalance("0.0"); //置0
coDomain.update(coBean);
//写入(或追回)ForceOffLineWin's jTextArea中
String strInfo="会员 ["+jTable.getValueAt(i, 2)+"] 的余额不足,系统已强制其下机!"+"[发生在:"+ endTime+"]\n";
ForceOffLineWin.getJTextArea().append(strInfo);
//重置jTable相应行中各列的内容为null
for(int j=1;j<jTable.getColumnCount();j++)
jTable.setValueAt(null, i, j);
}
else
{//继续显示
jTable.setValueAt(cusBalance, i, 7);
jTable.setValueAt(CalcTime.dispDiffTime(), i, 4); //在调用dispDiffTime之前必须先调用getOnUseMinute,以初始相关数据
//即时更新会员表中的卡号金额
cBean.setCusBalance(String.valueOf(cusBalance));
cBean.setCusCardNum(cusCardNum);
cDomain.updateBalance(cBean);
//更新消费表,但结束时间为空(假下机)
coBean.setConEndTime("");
coDomain.update(coBean);
}
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -