📄 mainframe.java
字号:
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Calendar;
public class MainFrame {
static JFrame f = new JFrame("网吧计费系统");
static boolean show = false;
public MainFrame() {
JMenuBar mb = new JMenuBar();
JMenu m1 = new JMenu("使用");
JMenuItem m1i1 = new JMenuItem("上机");
m1i1.addActionListener(new Listener_m1i1());
JMenuItem m1i2 = new JMenuItem("下机");
m1i2.addActionListener(new Listener_m1i2());
m1.add(m1i1);
m1.add(m1i2);
mb.add(m1);
JMenu m2 = new JMenu("帮助");
JMenuItem m2i = new JMenuItem("关于");
m2i.addActionListener(new Listener_m2i());
m2.add(m2i);
mb.add(m2);
JMenu m3 = new JMenu("退出");
m3.addActionListener(new Listener_m3());
mb.add(m3);
f.setJMenuBar(mb);
f.setBounds(100, 100, 400, 500);
f.getContentPane().add(new JLabel("网吧计费系统 V1.0 国产007制作",JLabel.CENTER));
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class Listener_m1i1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (MainFrame.show == false) {
MainFrame.f.getContentPane().removeAll();
JPanel p = new JPanel(new GridLayout(5, 2));
p.add(new JLabel("机器号码:"));
p.add(LoginPanel.JCB);
p.add(new JLabel("卡号:"));
p.add(LoginPanel.card_number_text);
p.add(new JLabel("密码:"));
p.add(LoginPanel.password_text);
p.add(new JLabel("开始时间:"));
LoginPanel.time_text.setEnabled(false);
LoginPanel.time_text.setText(DateFormat.getDateTimeInstance()
.format(LoginPanel.beginTime.getTime()));
p.add(LoginPanel.time_text);
JButton subit = new JButton("确定");
subit.addActionListener(new Listener_subit());
JButton reset = new JButton("重置");
reset.addActionListener(new Listener_reset());
p.add(subit);
p.add(reset);
MainFrame.f.getContentPane().add(p);
MainFrame.f.setVisible(true);
MainFrame.show = true;
}
LoginPanel.JCB.removeAllItems();
try {
ResultSet rs00 = DataBase.getInstance().select(
"select computer_number from computer where enable = true");
while (rs00.next()) {
LoginPanel.JCB.addItem(rs00.getString("computer_number"));
}
} catch (SQLException e0) {
e0.printStackTrace();
}
}
}
class Listener_m1i2 implements ActionListener {
public void actionPerformed(ActionEvent e0) {
int i = JOptionPane.showConfirmDialog(null, "您确定要下机吗?", "下机提示",
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
if (i == 0&&MainFrame.show) {
//计算消费金额
int day =LoginPanel.endTime.get(LoginPanel.endTime.DAY_OF_MONTH)-LoginPanel.beginTime.get(LoginPanel.beginTime.DAY_OF_MONTH);
int hour =LoginPanel.endTime.get(LoginPanel.endTime.HOUR)-LoginPanel.beginTime.get(LoginPanel.beginTime.HOUR);
int minute = LoginPanel.endTime.get(LoginPanel.endTime.MINUTE)-LoginPanel.beginTime.get(LoginPanel.beginTime.MINUTE);
int totalTime =day*60*60*24+hour*60*60+minute;//总共上机时间
double usedmoney = 0.0;
if(hour<=1){
usedmoney = 2;
}
if(hour>2){
usedmoney = totalTime/3600;
}
//计算余额
try {
DataBase.getInstance().update(
"UPDATE card set balance=balance-"+usedmoney+" where card_number='"
+ LoginPanel.getCard_Number()+"'");
} catch (SQLException e) {
e.printStackTrace();
}
try {
ResultSet rs = DataBase.getInstance().select(
"select balance from card where card_number='"
+ LoginPanel.getCard_Number() + "'");
rs.next();
MainFrame.f.getContentPane().removeAll();
JPanel p = new JPanel(new GridLayout(6, 1));
LoginPanel.endTime = Calendar.getInstance();
p.add(new JLabel("机器号码:" + LoginPanel.getSelectedComputer(),
JLabel.LEFT));
p.add(new JLabel("卡号:" + LoginPanel.getCard_Number(), JLabel.LEFT));
p.add(new JLabel("上机时间:"
+ DateFormat.getDateTimeInstance().format(
LoginPanel.beginTime.getTime()), JLabel.LEFT));
p.add(new JLabel("下机时间:"
+ DateFormat.getDateTimeInstance().format(
LoginPanel.endTime.getTime()), JLabel.LEFT));
p.add(new JLabel("本次消费:"+NumberFormat.getInstance().format(usedmoney)+"元", JLabel.LEFT));
p.add(new JLabel("此卡余额:"+rs.getString(1), JLabel.LEFT));
MainFrame.f.add(p);
MainFrame.show = false;
MainFrame.f.setVisible(true);
} catch (SQLException e) {
e.printStackTrace();
}
//让卡号能够使用
try {
DataBase.getInstance().update(
"UPDATE card set used = false where card_number='"
+ LoginPanel.getCard_Number() + "'");
} catch (SQLException e) {
e.printStackTrace();
}
//让机子能够使用
try {
DataBase.getInstance().update(
"UPDATE computer set enable = true where computer_number="
+ LoginPanel.getSelectedComputer());
} catch (SQLException e) {
e.printStackTrace();
}
//将上机数据写入record表中
try {
DataBase.getInstance().update("insert into record(card_number,computer_number,begin_time,end_time,used_money)" +
" values('" +
LoginPanel.getCard_Number()+"',"+LoginPanel.getSelectedComputer()+",'"+
DateFormat.getDateTimeInstance().format(LoginPanel.beginTime.getTime())+"','"+
DateFormat.getDateTimeInstance().format(LoginPanel.endTime.getTime())+"',"+usedmoney+
")");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
};
class Listener_m2i implements ActionListener {
public void actionPerformed(ActionEvent e1) {
MainFrame.f.getDefaultCloseOperation();
JOptionPane.showMessageDialog(null, "网吧计费管理系统 version 1.0 国产007制作",
"关于", JOptionPane.PLAIN_MESSAGE);
}
}
class Listener_m3 implements ActionListener {
public void actionPerformed(ActionEvent e) {
//MainFrame.f.getDefaultCloseOperation();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -