📄 logform.java
字号:
package com.hotdon.mem;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.text.DateFormat;
import javax.swing.*;
import java.util.*;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class logform extends JFrame implements ActionListener{
//定义组件Dialog
Timer timer1=new Timer();
Timer timer2=new Timer();
Date loginDate=new Date();
String timeCount,timeHour,timeMinute,timeSecond;
int hours=0,minutes=0,seconds=0;
JLabel la1=new JLabel("账号");
JLabel la2=new JLabel();
JLabel la3=new JLabel("上网日期");
JLabel la4=new JLabel();
JLabel statusBar=new JLabel();
JLabel la5=new JLabel("已上线时间");
JLabel la6=new JLabel();
JLabel la7=new JLabel("余额");
JLabel la8=new JLabel();
//更改密码的组件
JLabel lb1=new JLabel();
JLabel lb2=new JLabel();
JPasswordField tx1=new JPasswordField(8);
JPasswordField tx2=new JPasswordField(8);
public logform(Frame parent,String memberID1){//本类的构造方法
try{
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit(memberID1);//初始化(使用下面的jbInit方法)
}
catch(Exception exception){
exception.printStackTrace();
}
}
private void jbInit(String member)throws Exception{
JPanel pane_Insert=new JPanel();
pane_Insert.setLayout(new GridBagLayout());
GridBagConstraints gbc=new GridBagConstraints();
gbc.anchor=GridBagConstraints.WEST;
gbc.insets=new Insets(2,2,2,2);
pane_Insert.setBorder(BorderFactory.createTitledBorder(""));
setTitle("会员登录信息");
statusBar.setText("按[确定]按钮提交删除信息");
//文本框架1
gbc.gridy=1;
gbc.gridx=0;
pane_Insert.add(la2,gbc);
//显示所登录 的会员账号代码
gbc.gridy=1;
gbc.gridx=1;
la2.setText(member);
pane_Insert.add(la2,gbc);
gbc.gridy=2;
gbc.gridx=0;
pane_Insert.add(la3,gbc);
//取系统日期与时间
String var=DateFormat.getDateTimeInstance().format(loginDate);
la4.setText(var);
gbc.gridy=2;
gbc.gridx=1;
pane_Insert.add(la4,gbc);
gbc.gridy=3;
gbc.gridx=0;
pane_Insert.add(la5,gbc);
gbc.gridy=3;
gbc.gridx=1;
pane_Insert.add(la6,gbc);
gbc.gridy=4;
gbc.gridx=0;
pane_Insert.add(la7,gbc);
gbc.gridy=4;
gbc.gridx=1;
pane_Insert.add(la8,gbc);
//计算上线时间:开始
timer2.schedule(new TimerTask(){
public void run(){
seconds+=1;
if(seconds==60){
minutes+=1;
seconds=0;
if(minutes==60){
hours+=1;
minutes=0;
}
}
timeHour=Integer.toString(hours);
timeMinute=Integer.toString(minutes);
timeSecond=Integer.toString(seconds);
timeCount=timeHour+"小时"+timeMinute+"分钟"+timeSecond+"秒";
la6.setText(timeCount);
}
},0,1000);//计算上线时间:结束
//添加上线信号到数据库中
//开始
dataDAO dao=null;
dao=(com.hotdon.mem.dataDAO) new com.hotdon.dao.dataDAOImpl();
try{
String Query;
Query="select * from memberTable";
ResultSet rs1=dao.getData(Query);
while(rs1.next()){
Query="update memberTable set online='"+1+"'where"+
"memberID='"+la2.getText().trim()+"'";
dao.updateData(Query);
dao.close();
}
}
catch(SQLException exception){
exception.printStackTrace();
}//结束
/*添加时间计数器代码,每隔1分计余额(减0.05)一次并更新一次余额*/
//开始
timer1.schedule(new TimerTask(){
public void run(){
dataDAO dao=null;
dao=(com.hotdon.mem.dataDAO)new com.hotdon.dao.dataDAOImpl();
try{
String QueryString;
QueryString="select * from memberTable";
ResultSet rs=dao.getData(QueryString);
while(rs.next()){
if(rs.getString("memberID").equals(la2.getText().trim())){
float money;
money=Float.parseFloat(rs.getString("leftmoney"));
if(money>0.05){//检查余额是否足够
money-=0.05;//扣余额0.05元一分钟
la8.setText(Float.toString(money)+'元');
QueryString="update memberTable set leftmoney='"+money+"'"
+"where memberID='"+la2.getText().trim()+"'";
dao.updateData(QueryString);
dao.close();
}
else{
final JDialog dialog= new JDialog((Frame) null,"错误",true);
Container dialogContenPane=dialog.getContentPane();
dialogContenPane.setLayout(new FlowLayout());
dialogContenPane.add(new JLabel("余额不足!请充值"));
JButton jbutton=new JButton("确认");
dialogContenPane.add(jbutton);
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dialog.dispose();
dataDAO dao=null;
dao=(com.hotdon.mem.dataDAO) new
com.hotdon.dao.dataDAOImpl();
try{
//取时间
Date a2=new Date();
String var2=DateFormat.getDateTimeInstance().format(a2);
JTextField timeout2=new JTextField();
timeout2.setText(var2);
String QueryString="insert into record"+
"(memberID,logtime,logouttime,timecount)"+
"values('"+la2.getText()+"','"+
la4.getText()+"','"+timeout2.getText()+
"','"+la6.getText()+"')";
dao.updateData(QueryString);
dao.close();
}
catch(SQLException exception){
exception.printStackTrace();
}
/*下线信号发送* */
try{
String QueryString;
QueryString="select * from memberTable";
ResultSet rs=dao.getData(QueryString);
while(rs.next()){
QueryString="update memberTable set online='"+0+
"'where memberID='"+la2.getText().trim()+"'";
dao.updateData(QueryString);
dao.close();
}
}
catch(SQLException exception){
exception.printStackTrace();
}
//关闭窗体
timer1.cancel();
timer2.cancel();
dispose();
}
});
dialog.setBounds(450,300,100,90);
dialog.setVisible(true);
}//else
}//if
}//while
}//try
catch(Exception exception){
exception.printStackTrace();
}
}
},0,60*1000);//每1分钟计数一次
gbc.gridy=5;
gbc.gridx=0;
JButton updatePasswordButton=new JButton("密码");
pane_Insert.add(updatePasswordButton,gbc);
updatePasswordButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
/*消息框代码*/
final JDialog dialog1=new JDialog((Frame) null,"密码更改");
Container dialogContenPane=dialog1.getContentPane();
dialogContenPane.setLayout(new FlowLayout());
lb1.setText(" 新密码:");
lb2.setText("确定新密码");
dialogContenPane.add(lb1);
dialogContenPane.add(tx1);
dialogContenPane.add(lb2);
dialogContenPane.add(tx2);
JButton jbutton=new JButton("更改");
dialogContenPane.add(jbutton);
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int flag=0;
dataDAO dao=null;
dao=(com.hotdon.mem.dataDAO) new
com.hotdon.dao.dataDAOImpl();
if(tx1.getText().trim().equals(tx2.getText().trim())){
try{
String QueryString;
QueryString="select * from memberTable";
ResultSet rs=dao.getData(QueryString);
if(! tx1.getText().trim().equals("")
&& ! tx2.getText().trim().equals("")){
while(rs.next()){
flag=1;
QueryString="update memberTable set password='"+
tx1.getText().trim()+"' where memberID'"+
la2.getText().trim()+"'";
dao.updateData(QueryString);
dao.close();
}
if(flag==1){
final JDialog dialog=new JDialog((Frame)null,"成功",true);
Container dialogContenPane=dialog.getContentPane();
dialogContenPane.setLayout(new FlowLayout());
dialogContenPane.add(new JLabel("更新成功!"));
JButton jbutton=new JButton("确认");
dialogContenPane.add(jbutton);
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dialog.dispose();
tx1.setText("");
tx2.setText("");
}
});
dialog.setBounds(450,300,100,90);
dialog.setVisible(true);
dialog1.setVisible(false);
}
}
else{
final JDialog dialog=new JDialog((Frame) null,"错误",true);
Container dialogContenPane=dialog.getContentPane();
dialogContenPane.setLayout(new FlowLayout());
dialogContenPane.add(new JLabel("新密码不能为空!"));
JButton jbutton=new JButton("确认");
dialogContenPane.add(jbutton);
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dialog.dispose();
tx2.setText("");
}
});
dialog.setBounds(450,300,100,90);
dialog.setVisible(true);
}
}//try
catch(Exception exception){
exception.printStackTrace();
}
}//if
else{
final JDialog dialog=new JDialog((Frame) null,"错误",true);
Container dialogContenPane=dialog.getContentPane();
dialogContenPane.setLayout(new FlowLayout());
dialogContenPane.add(new JLabel("新密码不一致!"));
JButton jbutton=new JButton("确认");
dialogContenPane.add(jbutton);
jbutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dialog.dispose();
tx1.setText("");
tx2.setText("");
}
});
dialog.setBounds(450,300,100,90);
dialog.setVisible(true);
}
}
});
dialog1.setBounds(450,300,195,130);
dialog1.setVisible(true);
}
});
gbc.gridy=5;
gbc.gridx=1;
JButton InsertExitButton=new JButton("退出登录");
pane_Insert.add(InsertExitButton,gbc);
InsertExitButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
/***添加写入数据库record表登录时间的代码***/
dataDAO dao=null;
dao=(com.hotdon.mem.dataDAO) new
com.hotdon.dao.dataDAOImpl();
try{
//取系统时间
Date al=new Date();
String varl=DateFormat.getDateInstance().format(al);
JTextField timeout1=new JTextField();
timeout1.setText(varl);
String QueryString="insert into record"+
"memberID,logtime,logouttime,timecount)"+
"values('"+la2.getText()+"','"+la2.getText()+
"','"+timeout1.getText()+"','"+la6.getText()+"')";
dao.updateData(QueryString);
dao.close();
}
catch(SQLException exception){
exception.printStackTrace();
}
/***下线信号发送***/
try{
String QueryString;
QueryString="select * from memberTable";
ResultSet rs=dao.getData(QueryString);
while(rs.next()){
QueryString="update memberTable set online='"+0+
"'where memberID='"+la2.getText().trim()+"'";
dao.updateData(QueryString);
dao.close();
}
}
catch(SQLException exception){
exception.printStackTrace();
}
//关闭窗体
timer1.cancel();
timer2.cancel();
dispose();
}
});
getContentPane().add(pane_Insert,null);
setResizable(true);
}//jbInit
/***按钮事件处理方法***/
public void actionPerformed(ActionEvent actionEvent){
dataDAO dao=null;
dao=(com.hotdon.mem.dataDAO) new com.hotdon.dao.dataDAOImpl();
try{
Date a2=new Date();
String var2=DateFormat.getDateTimeInstance().format(a2);
JTextField timeout2=new JTextField();
timeout2.setText(var2);
String QueryString="insert int record"+
"(memberID,logtime,logouttime,timecount)"+
"values('"+la2.getText()+"','"+la4.getText()+"','"+
timeout2.getText()+"','"+la6.getText()+"')";
dao.updateData(QueryString);
dao.close();
}
catch(SQLException exception){
exception.printStackTrace();
}
/***下线信号发送***/
try{
String QueryString;
QueryString="select * from memberTable";
ResultSet rs=dao.getData(QueryString);
while(rs.next()){
QueryString="update memberTable set online='"+0+
"'where memberID='"+la2.getText().trim()+"'";
dao.updateData(QueryString);
dao.close();
}
}
catch(SQLException exception){
exception.printStackTrace();
}
timer1.cancel();
timer2.cancel();
dispose();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -