?? 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 + -