东软实习:(笔记)
(java)
解决乱码:
String str ="中国"
byte[]bytes=str.getBytes("iso-8859-1");
str=new string(bytes);
界面的编写:
一、 任何表中必须一个主键(码):表来标识表的记录的唯一性.
项目中可以用序列来解决这个问题
二、 数据库设计规范:
(1) 第一范式:属性不能再分:
学生1(学号,姓名,….家庭成员)
(2) 第二范式:满足第一范式,且每个非主属性都完全函数依赖于关键字
例:选课(学号,课程号,系部代码,出生日期,成绩)
(3)第三范式:满足第二范式,且没有一个非关键字属性是传递函数依赖于候选关键字属性的。
例:学生(学号,姓名,性别,出生日期,系名,入学时间,系寝室楼)
三、画界面:awt组件. GUI—swing
1.布局方式: FlowLayout,
(1)FlowLayout:流式布局:如果有很多的控件,会按像水流一样的布局方式。
Frame frame=new Frame("测试窗口");//窗体
frame.setBounds(300, 200, 400, 400);//设置窗体位置及大小 frame.setLayout(new FlowLayout(FlowLayout.LEFT,20,5)); for(int i=0;i<10;i++) { frame.add(new Button(i+"")); } frame.pack();//自动调整窗体 frame.setVisible(true);
|
BorderLayout():上(North)中(center)下(south),左(west)右(east)
Frame frame=new Frame("测试窗口");//窗体
frame.setBounds(300, 200, 400, 400);//设置窗体位置及大小
frame.setLayout(new BorderLayout()); frame.add(new Button("North"), BorderLayout.NORTH); frame.add(new Button("South"), BorderLayout.SOUTH); frame.add(new Button("East"), BorderLayout.EAST); frame.add(new Button("West"), BorderLayout.WEST); frame.add(new Button("Center"), BorderLayout.CENTER);
frame.pack();//自动调整窗体 frame.setVisible(true); |
(3)GridLayout:
Frame f =new Frame("测试窗口");
Panel p1 =new Panel();
p1.add(new TextField(30)); f.setLayout(new BorderLayout()); f.add(p1, BorderLayout.NORTH);
Panel p2 =new Panel(); p2.setLayout(new GridLayout(3, 5, 4, 4)); String[] names = {"0","1","2","3","4","5","6","7","8","9", "*","#",".","/","@" }; for (int i = 0; i < names.length; i++) { p2.add(new Button(names[i])); } f.add(p2); f.pack(); f.setVisible(true);
f.pack(); f.setVisible(true);
|
package an;
import java.awt.Label; //Label 按钮
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton; //JButton 按钮
import javax.swing.JFrame; //窗口
import javax.swing.JTextArea;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Niu extends JFrame implements ActionListener
{
static String user = null; //相当于 int i=0;
private Label l=new Label("请输入手机号码:");
private JTextArea text1=new JTextArea();
private JButton btn=new JButton("开机");
private JButton btn1=new JButton("1");
private JButton btn2=new JButton("2");
private JButton btn3=new JButton("3");
private JButton btn4=new JButton("4");
private JButton btn5=new JButton("5");
private JButton btn6=new JButton("6");
private JButton btn7=new JButton("7");
private JButton btn8=new JButton("8");
private JButton btn9=new JButton("9");
private JButton btn10=new JButton("#");
private JButton btn11=new JButton("0");
private JButton btn12=new JButton("*");
public Niu(){
l.setSize(100,25);
text1.setSize(120,30);
btn.setSize(80,30);
btn1.setSize(100, 50);
btn2.setSize(100, 50);
btn3.setSize(100, 50);
btn4.setSize(100, 50);
btn5.setSize(100, 50);
btn6.setSize(100, 50);
btn7.setSize(100, 50);
btn8.setSize(100, 50);
btn9.setSize(100, 50);
btn10.setSize(100, 50);
btn11.setSize(100, 50);
btn12.setSize(100, 50);
l.setLocation(10,50);
text1.setLocation(95, 100);
btn.setLocation(115, 150);
btn1.setLocation(0, 200);
btn2.setLocation(100, 200);
btn3.setLocation(200, 200);
btn4.setLocation(0, 250);
btn5.setLocation(100, 250);
btn6.setLocation(200, 250);
btn7.setLocation(0, 300);
btn8.setLocation(100, 300);
btn9.setLocation(200, 300);
btn10.setLocation(0, 350);
btn11.setLocation(100, 350);
btn12.setLocation(200, 350);
this.add(l);
this.add(text1);
this.add(btn);
this.add(btn1);
this.add(btn2);
this.add(btn3);
this.add(btn4);
this.add(btn5);
this.add(btn6);
this.add(btn7);
this.add(btn8);
this.add(btn9);
this.add(btn10);
this.add(btn11);
this.add(btn12);
this.setLayout(null);
this.setSize(300, 430);
btn.addActionListener(this);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
btn5.addActionListener(this);
btn6.addActionListener(this);
btn7.addActionListener(this);
btn8.addActionListener(this);
btn9.addActionListener(this);
btn10.addActionListener(this);
btn11.addActionListener(this);
btn12.addActionListener(this);
this.setVisible(true);
this.setTitle("金尊 k8");
this.getContentPane().setBackground(java.awt.Color.green);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn1)
{ text1.append("1");}
else if(e.getSource()==btn2)
{text1.append("2");}
else if(e.getSource()==btn3)
{text1.append("3");}
else if(e.getSource()==btn4)
{text1.append("4");}
else if(e.getSource()==btn5)
{text1.append("5");}
else if(e.getSource()==btn6)
{text1.append("6");}
else if(e.getSource()==btn7)
{text1.append("7");}
else if(e.getSource()==btn8)
{text1.append("8");}
else if(e.getSource()==btn9)
{text1.append("9");}
else if(e.getSource()==btn10)
{text1.append("#");}
else if(e.getSource()==btn11)
{text1.append("0");}
else if(e.getSource()==btn12)
{text1.append("*");}
if(e.getSource()==btn){
user = text1.getText(); //记录登陆手记号
String sql = "select userphone from onlineuser where userphone=?";
try
{
Connection con = OracleConnection.getConnection(); // 1
PreparedStatement pst = null; // 2
ResultSet rs = null; // 3
pst = con.prepareStatement(sql); // 4
pst.setString(1, user); // 5
rs = pst.executeQuery(); // 6 相当与固定语句?
if(rs.next()){ // 判断:如果上边是数据库里的内容,则游标向下走;
new DengLuChengGong();
this.dispose();
}
else
{
text1.setText("用户 不 存在 ");
}
}catch (SQLException e1) {e1.printStackTrace();}
}
}
public static void main(String args[]){
{
Niu n= new Niu();
}
}
}
与Oracal数据库的链接:
package com.neusoft.dbutil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionDB {
private static Connection connection;
private static final String URL = "jdbc:oracle:thin:@10.25.93.29:1521:ORACLE";
private static final String USER = "scott";
private static final String PASSWORD = "tiger";
public static Connection getConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
connection = DriverManager.getConnection(URL,USER,PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
//关闭 数据库的对象
public static void close(Connection connection) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
发送短信功能:
此处主要学习对数据库的增加操作(SQL语句中传递参数)
package com.neusoft.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Date;
import com.neusoft.dbutil.ConnectionDB;
/*
* 此类主要是实现对表的操作(增,删,改,查)
*/
public class SendMessageDao {
/*
* 此方法实现发送短信的功能
*/
public void sendMessage(String receiver, String sender,Date rTime ,String content) {
int suc = 0;// 判断是否插入成功;
String sql = "insert into messagetbl(messageid,receiver,sender,content,rTime,sVauleTime,isRead) values(incremen.nextval,?,?,?,?,?,0)";
Connection con = ConnectionDB.getConnection();
PreparedStatement pstmt;//此处注意使用此接口来编程
try {
pstmt = con.prepareStatement(sql);
pstmt.setString(1, receiver);
pstmt.setString(2, sender);
pstmt.setString(3, content);
pstmt.setDate(4,rTime );
pstmt.setString(5, null);
/*pstmt.setString(1, receiver);
pstmt.setString(2, sender);
pstmt.setString(3, content);
pstmt.setDate(4, )
pstmt.setString(5, );*/
suc = pstmt.executeUpdate();
System.out.println(suc);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return suc;
}
}
接收短信功能:
package com.neusoft.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.neusoft.dbutil.ConnectionDB;
import com.neusoft.modal.Message;
//此功能实现接收短信功能
public class ReceiveMessageDao {
public ArrayList<Message> selectMessage(String phonNumber) {
Connection con = ConnectionDB.getConnection();
//此处要实现传参数(电话号码)
String sql = "select * from messagetbl where receiver='"+phonNumber+"' and isread=0";
Message mes = null;
ArrayList<Message> list = new ArrayList();
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
mes = new Message();
mes.setIsRead(rs.getInt("isread"));
mes.setMessageId(rs.getInt("messageId"));//自增类型
mes.setReceiver(rs.getString("receiver"));
mes.setSender(rs.getString("sender"));
mes.setrTime(rs.getDate("rTime"));
mes.setsVauleTime(rs.getDate("SVAULETIME"));
mes.setContent(rs.getString("Content"));
list.add(mes);
}
ConnectionDB.close(con);
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public void deleteMessage(String sender){
Connection con = ConnectionDB.getConnection();
//此处要实现传参数(电话号码)
String sql = "delete from messagetbl where SENDER='"+sender+"'";
Statement stmt;
try {
stmt = con.createStatement();
stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
界面代码
package com.neusoft.view;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import com.neusoft.dao.CardInfoDao;
import com.neusoft.dao.ChangeStatusDao;
import com.neusoft.dao.DealInfoDao;
import com.neusoft.dao.DeleteMessageDao;
import com.neusoft.dao.FindMessageDao;
import com.neusoft.dao.HistoryMessageDao;
import com.neusoft.dao.OpenPhoneDao;
import com.neusoft.dao.SendMessageDao;
import com.neusoft.dao.UpdateMoneyDao;
import com.neusoft.model.Message;
import com.neusoft.model.PhoneNum;
/*
* 类功能介绍:
* 显示程序界面
*/
public class LoadingView {
private String phoneNum = null; // 用于存储手机号
public void init() {
final Frame frame = new Frame("索爱ST18i");
frame.setResizable(false);
frame.setLayout(null);
final Label label1 = new Label("请输入手机号码:");
final Label label2 = new Label("登陆成功!");
final Label label3 = new Label("信息");
final Label label4 = new Label("收件人:");
final Label label5 = new Label("请输入充值卡卡号:");
final Label label6 = new Label("请输入充值卡密码:");
final Label label7 = new Label("");
final TextField textField1 = new TextField();
final TextField textField2 = new TextField();
final TextField textField3 = new TextField();
final JPasswordField jPasswordField = new JPasswordField();
final Button button1 = new Button("开机");
final Button button2 = new Button("点击,进入");
final Button button3 = new Button("信息");
final Button button4 = new Button("退出");
final Button button5 = new Button("发信息");
final Button button6 = new Button("收件箱");
final Button button7 = new Button("话费查询");
final Button button8 = new Button("充值");
final Button button9 = new Button("发送");
final Button button10 = new Button("返回");
final Button button11 = new Button("确定");
final Button button12 = new Button("删除信息");
final Button button13 = new Button("查看信息");
final Button button14 = new Button("返回");
final TextArea textArea1 = new TextArea("", 3, 2,
TextArea.SCROLLBARS_NONE);
final Object[][] value = new Object[0][];
final String[] title = { "发件人", "内容", "发送时间", "信息编号" };
final MyTableModel mm = new MyTableModel(value, title); // 初始化table
final JTable table = new JTable(mm);
final JScrollPane scrollpane = new JScrollPane(table);
// 设置组件位置及大小
label1.setBounds(50, 80, 200, 20);
label1.setFont(new Font("华文行楷", Font.BOLD, 14));
label2.setBounds(120, 30, 100, 20);
label3.setBounds(20, 30, 40, 20);
label4.setBounds(5, 30, 60, 20);
label5.setBounds(20, 60, 200, 20);
label6.setBounds(20, 110, 200, 20);
label7.setBounds(5, 30, 200, 20);
textField1.setBounds(80, 120, 150, 30);
textField1.setFont(new Font("华文琥珀", Font.BOLD, 20));
textField2.setBounds(65, 30, 225, 20);
textField3.setBounds(70, 85, 160, 20);
jPasswordField.setBounds(70, 135, 160, 20);
button1.setBounds(110, 160, 80, 30);
button2.setBounds(110, 160, 80, 20);
button3.setBounds(20, 160, 60, 20);
button4.setBounds(220, 160, 60, 20);
button5.setBounds(110, 60, 80, 20);
button6.setBounds(110, 90, 80, 20);
button7.setBounds(110, 120, 80, 20);
button8.setBounds(110, 150, 80, 20);
button9.setBounds(5, 170, 60, 20);
button10.setBounds(220, 165, 70, 20);
button11.setBounds(150, 170, 60, 20);
button12.setBounds(10, 165, 70, 20);
button13.setBounds(115, 165, 70, 20);
button14.setBounds(220, 165, 70, 20);
textArea1.setBounds(5, 55, 290, 110);
textArea1.setFont(new Font("宋体", Font.PLAIN, 16));
scrollpane.setBounds(5, 50, 290, 100);
final Panel p1 = new Panel(); // 添加panel用来放置键盘
p1.setBounds(30, 200, 240, 180);
p1.setLayout(new GridLayout(4, 3, 15, 15));
String[] names = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "*",
"0", "#" };
for (int i = 0; i < names.length; i++) {
ArrayList<Button> buttons = new ArrayList<Button>();
final Button b = new Button(names[i]);
b.setFont(new Font("华文彩云", Font.BOLD, 30));
buttons.add(b);
// 为手机按键绑定监听事件
ActionListener eventA = new ActionListener() {
public void actionPerformed(ActionEvent event) {
String temp = b.getLabel();
textField1.setText(textField1.getText() + temp);
}
};
b.addActionListener(eventA);
p1.add(b);
}
final Panel p2 = new Panel(); // 添加pane2用来放置键盘
p2.setBounds(30, 200, 240, 180);
p2.setLayout(new GridLayout(4, 3, 15, 15));
for (int i = 0; i < names.length; i++) {
ArrayList<Button> buttons = new ArrayList<Button>();
final Button b = new Button(names[i]);
b.setFont(new Font("华文彩云", Font.BOLD, 30));
buttons.add(b);
// 为手机按键绑定监听事件
ActionListener eventB = new ActionListener() {
public void actionPerformed(ActionEvent event) {
String temp = b.getLabel();
textField2.setText(textField2.getText() + temp);
}
};
b.addActionListener(eventB);
p2.add(b);
}
final Panel p3 = new Panel(); // 添加pane3用来放置键盘
p3.setBounds(30, 200, 240, 180);
p3.setLayout(new GridLayout(4, 3, 15, 15));
for (int i = 0; i < names.length; i++) {
ArrayList<Button> buttons = new ArrayList<Button>();
final Button b = new Button(names[i]);
b.setFont(new Font("华文彩云", Font.BOLD, 30));
buttons.add(b);
// 为手机按键绑定监听事件
ActionListener eventC = new ActionListener() {
public void actionPerformed(ActionEvent event) {
String temp = b.getLabel();
textField3.setText(textField3.getText() + temp);
}
};
b.addActionListener(eventC);
p3.add(b);
}
// 隐藏部分组件
label2.setVisible(false);
label3.setVisible(false);
label4.setVisible(false);
label5.setVisible(false);
label6.setVisible(false);
label7.setVisible(false);
textField2.setVisible(false);
textField3.setVisible(false);
jPasswordField.setVisible(false);
button2.setVisible(false);
button3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
button9.setVisible(false);
button10.setVisible(false);
button11.setVisible(false);
button12.setVisible(false);
button13.setVisible(false);
button14.setVisible(false);
textArea1.setVisible(false);
scrollpane.setVisible(false);
p2.setVisible(false);
p3.setVisible(false);
frame.add(label1);
frame.add(label2);
frame.add(label3);
frame.add(label4);
frame.add(label5);
frame.add(label6);
frame.add(label7);
frame.add(textField1);
frame.add(textField2);
frame.add(textField3);
frame.add(jPasswordField);
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.add(button4);
frame.add(button5);
frame.add(button6);
frame.add(button7);
frame.add(button8);
frame.add(button9);
frame.add(button10);
frame.add(button11);
frame.add(button12);
frame.add(button13);
frame.add(button14);
frame.add(textArea1);
frame.add(p1);
frame.add(p2);
frame.add(p3);
frame.add(scrollpane);
frame.setBounds(300, 400, 300, 400);
frame.setVisible(true);
ActionListener as1 = new ActionListener() {
// 开机按钮监听事件
public void actionPerformed(ActionEvent event) {
phoneNum = textField1.getText().toString();
if (phoneNum.equals("")) {
JOptionPane.showMessageDialog(frame, "请输入手机号后开机!", "错误",
JOptionPane.WARNING_MESSAGE);
} else if (!phoneNum.equals("")) {
OpenPhoneDao op = new OpenPhoneDao();
int temp = op.selectPhoneNumDao(phoneNum);
if (temp == 0) {
// 如果标志变量未改变,说明数据库中没有改手机号
JOptionPane.showMessageDialog(frame, "没有该手机号,请重新输入!",
"提示", JOptionPane.ERROR_MESSAGE);
textField1.setText(""); // 清空textField中的内容
} else if (temp != 0) {
// 标志变量已改变,说明已找到相应的手机号
ChangeStatusDao cs = new ChangeStatusDao();
cs.Change(phoneNum, "开机");
label1.setVisible(false); // 隐藏响应组件,下同
textField1.setVisible(false);
textField1.setText(""); // 清空textField中的内容,下同
button1.setVisible(false);
label2.setVisible(true); // 显示响应组件,下同
button2.setVisible(true);
}
}
}
};
button1.addActionListener(as1); // 为button1按钮绑定事件
ActionListener as2 = new ActionListener() {
// 登陆成功按键的监听事件
public void actionPerformed(ActionEvent event) {
label2.setText("中国移动");
button3.setVisible(true);
button2.setVisible(false);
}
};
button2.addActionListener(as2); // 为button2按钮绑定事件
ActionListener as3 = new ActionListener() {
// 信息的监听事件
public void actionPerformed(ActionEvent event) {
label2.setVisible(false);
button3.setVisible(false);
label3.setVisible(true);
button4.setVisible(true);
button5.setVisible(true);
button6.setVisible(true);
button7.setVisible(true);
button8.setVisible(true);
}
};
button3.addActionListener(as3); // 为button3按钮绑定事件
ActionListener as4 = new ActionListener() {
// 退出按钮的监听事件
public void actionPerformed(ActionEvent event) {
p1.setVisible(true); // 显示键盘
p2.setVisible(false);
p3.setVisible(false);
label2.setVisible(false);
label3.setVisible(false);
label4.setVisible(false);
label5.setVisible(false);
label6.setVisible(false);
textField2.setVisible(false);
textField3.setVisible(false);
jPasswordField.setVisible(false);
button2.setVisible(false);
button3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
button9.setVisible(false);
button10.setVisible(false);
button11.setVisible(false);
button12.setVisible(false);
textArea1.setVisible(false);
scrollpane.setVisible(false);
label1.setVisible(true);
label1.setText("请输入手机号码:");
button1.setVisible(true);
textField1.setVisible(true);
textField1.setText("");
}
};
button4.addActionListener(as4); // 为button4按钮绑定事件
ActionListener as5 = new ActionListener() {
// 发信息按钮的监听事件
public void actionPerformed(ActionEvent event) {
p1.setVisible(false);
p3.setVisible(false);
p2.setVisible(true); // 显示键盘
label3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
label4.setVisible(true);
textField2.setVisible(true);
textField2.setText("");
textArea1.setVisible(true);
button9.setVisible(true);
button10.setVisible(true);
}
};
button5.addActionListener(as5); // 为button5按钮绑定事件
ActionListener as6 = new ActionListener() {
// 收件箱按钮的监听事件
public void actionPerformed(ActionEvent event) {
FindMessageDao fn = new FindMessageDao();
final ArrayList<Message> mlist = fn.searchAll(phoneNum);
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
// 方法一
int count = dtm.getRowCount();
while (count > 0) { // 每次从数据库读取数据前先清空table中的数据
dtm.removeRow(0);
count--;
}
/*
* 方法二 for(int count = dtm.getRowCount();count>0;count--){
* dtm.removeRow(0); }
*/
/*
* 方法三 int count = dtm.getRowCount(); for(int i = 0;i <
* count;i++){ dtm.removeRow(0); }
*/
// 向table中添加数据
for (Message e1 : mlist) {
dtm.addRow(new Object[] { e1.getSendPersonId(),
e1.getInfo(), e1.getSendTime(), e1.getM_id() });
}
// 隐藏信息编号那列
DefaultTableColumnModel dtcm = (DefaultTableColumnModel) table
.getColumnModel();
dtcm.getColumn(3).setMinWidth(0);
dtcm.getColumn(3).setMaxWidth(0);
label3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
button12.setVisible(true);
button13.setVisible(true);
label4.setVisible(true);
label4.setText("收件箱");
button10.setVisible(true);
scrollpane.setVisible(true);
}
};
button6.addActionListener(as6); // 为button6按钮绑定事件
ActionListener as7 = new ActionListener() {
// 查询话费按键的监听事件
public void actionPerformed(ActionEvent event) {
double yMoney = 0;
UpdateMoneyDao um = new UpdateMoneyDao(); // 查询话费后扣除0.1元费用
yMoney = um.search(phoneNum, 1);
label3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
button10.setVisible(true);
label1.setVisible(true);
label1.setText("您当前话费余额为:" + yMoney + " 元");
}
};
button7.addActionListener(as7); // 为button7按钮绑定事件
ActionListener as8 = new ActionListener() {
// 充值按键的监听事件
public void actionPerformed(ActionEvent event) {
p1.setVisible(false);
p2.setVisible(false);
p3.setVisible(true); // 显示键盘
label3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
button10.setVisible(true);
button11.setVisible(true);
label5.setVisible(true);
label6.setVisible(true);
textField3.setVisible(true);
textField3.setText("");
jPasswordField.setVisible(true);
}
};
button8.addActionListener(as8); // 为button8按钮绑定事件
ActionListener as9 = new ActionListener() {
// 发送信息按钮监听事件
public void actionPerformed(ActionEvent event) {
String num = textField2.getText().toString(); // 获取收件人手机号码
String info = textArea1.getText(); // 获取信息内容
if (num.equals("") || info.equals("")) {
JOptionPane.showMessageDialog(frame, "请完整填写内容!", "警告",
JOptionPane.WARNING_MESSAGE);
} else if (!num.equals("")) {
OpenPhoneDao op = new OpenPhoneDao();
int temp = op.selectPhoneNumDao(num);
if (temp == 0) {
// 如果标志变量未改变,说明数据库中没有改手机号
JOptionPane.showMessageDialog(frame, "没有该手机号,请重新输入!",
"提示", JOptionPane.ERROR_MESSAGE);
textField2.setText("");
} else if (temp != 0) {
// 标志变量已改变,说明已找到相应的手机号
// String time1 = new SimpleDateFormat("'yyyy-MM-dd'")
// .toString(); // 获取当前时间
double yMoney = 0;
UpdateMoneyDao um = new UpdateMoneyDao(); // 查询话费后扣除0.1元费用
yMoney = um.search(phoneNum, 1);
if (yMoney < 0) {
JOptionPane.showMessageDialog(frame, "您已欠费,请先充值!",
"提示", JOptionPane.WARNING_MESSAGE);
} else if (yMoney > 0.1) {
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss"); // 时间格式
Date nowDate = new Date(); // 得到当前时间
String time1 = sdf.format(nowDate);
SendMessageDao smd = new SendMessageDao();
int suc = smd.add(phoneNum, num, info, time1);
if (suc != 0) {
JOptionPane.showMessageDialog(frame, "发送成功!",
"提示", JOptionPane.INFORMATION_MESSAGE);
UpdateMoneyDao um1 = new UpdateMoneyDao(); // 发送成功后,扣除0.1元费用
um1.search(phoneNum, 1);
label1.setVisible(false);
label2.setVisible(false);
label4.setVisible(false);
label5.setVisible(false);
label6.setVisible(false);
textField2.setVisible(false);
textField2.setText("");
button9.setVisible(false);
button10.setVisible(false);
button11.setVisible(false);
textArea1.setVisible(false);
textArea1.setText("");
button4.setVisible(true);
button5.setVisible(true);
button6.setVisible(true);
button7.setVisible(true);
button8.setVisible(true);
label3.setVisible(true);
} else {
JOptionPane.showMessageDialog(frame, "发送失败!",
"提示", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(frame, "余额不足,请先充值!",
"提示", JOptionPane.WARNING_MESSAGE);
}
}
}
}
};
button9.addActionListener(as9); // 为button9按钮绑定事件
ActionListener as10 = new ActionListener() {
// 返回按钮的监听事件
public void actionPerformed(ActionEvent event) {
label1.setVisible(false);
label2.setVisible(false);
label4.setVisible(false);
label4.setText("收件人:");
label5.setVisible(false);
label6.setVisible(false);
textField2.setVisible(false);
textField2.setText("");
textField3.setVisible(false);
textField3.setText("");
jPasswordField.setVisible(false);
jPasswordField.setText("");
button9.setVisible(false);
button10.setVisible(false);
button11.setVisible(false);
button12.setVisible(false);
button13.setVisible(false);
textArea1.setVisible(false);
textArea1.setText("");
scrollpane.setVisible(false);
button4.setVisible(true);
button5.setVisible(true);
button6.setVisible(true);
button7.setVisible(true);
button8.setVisible(true);
label3.setVisible(true);
}
};
button10.addActionListener(as10); // 为button10按钮绑定事件
ActionListener as11 = new ActionListener() {
// 充值确定按钮的监听事件
public void actionPerformed(ActionEvent event) {
String cardNum = textField3.getText().toString();
String password = jPasswordField.getText().toString();
if (cardNum.equals("") || password.equals("")) {
JOptionPane.showMessageDialog(frame, "请完整输入信息!", "提示",
JOptionPane.WARNING_MESSAGE);
} else {
CardInfoDao ci = new CardInfoDao();
int flag = ci.Recharge(phoneNum, cardNum, password);
if (flag == 0) {
JOptionPane.showMessageDialog(frame, "充值卡卡号无效!", "提示",
JOptionPane.ERROR_MESSAGE);
textField3.setText("");
jPasswordField.setText("");
} else if (flag == -1) {
JOptionPane.showMessageDialog(frame, "充值卡密码不正确,请重新输入!",
"提示", JOptionPane.ERROR_MESSAGE);
jPasswordField.setText("");
} else if (flag == -2) {
JOptionPane.showMessageDialog(frame, "该充值卡已用,无法再次充值!",
"提示", JOptionPane.ERROR_MESSAGE);
textField3.setText("");
jPasswordField.setText("");
} else if (flag == 1) {
JOptionPane.showMessageDialog(frame, "充值成功!", "提示",
JOptionPane.INFORMATION_MESSAGE);
textField3.setText("");
jPasswordField.setText("");
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss"); // 时间格式
Date nowDate = new Date(); // 得到当前时间
String time1 = sdf.format(nowDate);
DealInfoDao di = new DealInfoDao(); // 将交易记录写入数据库
di.InsertInfo(cardNum, phoneNum, time1);
label1.setVisible(false);
label2.setVisible(false);
label4.setVisible(false);
label5.setVisible(false);
label6.setVisible(false);
textField2.setVisible(false);
textField3.setVisible(false);
jPasswordField.setVisible(false);
button9.setVisible(false);
button10.setVisible(false);
button11.setVisible(false);
textArea1.setVisible(false);
button4.setVisible(true);
button5.setVisible(true);
button6.setVisible(true);
button7.setVisible(true);
button8.setVisible(true);
label3.setVisible(true);
}
}
}
};
button11.addActionListener(as11); // 为button11按钮绑定事件
ActionListener as12 = new ActionListener() {
// 删除信息按钮的监听事件
public void actionPerformed(ActionEvent event) {
int n = table.getSelectedRow(); // 获取选中行
String sendPersonNum = table.getValueAt(n, 0).toString(); // 获取发件人号码
String info = table.getValueAt(n, 1).toString(); // 获取信息内容
String time1 = table.getValueAt(n, 2).toString(); // 获取发件时间
String str = table.getValueAt(n, 3).toString();// 获取信息编号
int messageId = Integer.parseInt(str);
DeleteMessageDao dm = new DeleteMessageDao();
int flag1 = dm.deleteById(messageId);
HistoryMessageDao hm = new HistoryMessageDao();
int flag2 = hm.addToHistoryMessage(sendPersonNum, phoneNum,
info, time1);
if (flag1 != 0 && flag2 != 0) {
JOptionPane.showMessageDialog(frame, "删除成功!", "提示",
JOptionPane.INFORMATION_MESSAGE);
DefaultTableModel dtm = (DefaultTableModel) table
.getModel();
dtm.removeRow(n); // 从table中删除该条信息
} else if (flag1 == 0 || flag2 == 0) {
JOptionPane.showMessageDialog(frame, "删除失败!", "提示",
JOptionPane.ERROR_MESSAGE);
}
}
};
button12.addActionListener(as12); // 为button12按钮绑定事件
ActionListener as13 = new ActionListener() {
// 查看信息按钮的监听事件
public void actionPerformed(ActionEvent event) {
int n = table.getSelectedRow(); // 获取选中行
String sendPersonNum = table.getValueAt(n, 0).toString(); // 获取发件人号码
String time1 = table.getValueAt(n, 2).toString(); // 获取发件时间
String info = table.getValueAt(n, 1).toString(); // 获取信息内容
textArea1.setText(info + "\n\n\n\n\n\t\t" + time1);
button14.setVisible(true);
textArea1.setVisible(true);
textArea1.setEditable(false);
textArea1.setBackground(Color.WHITE);
button12.setVisible(false);
button13.setVisible(false);
label4.setVisible(false);
label7.setText("发件人:" + sendPersonNum);
label7.setVisible(true);
button10.setVisible(false);
scrollpane.setVisible(false);
}
};
button13.addActionListener(as13); // 为button13按钮绑定事件
ActionListener as14 = new ActionListener() {
// 查看信息后,返回按钮的监听事件
public void actionPerformed(ActionEvent event) {
button14.setVisible(false);
label3.setVisible(false);
button4.setVisible(false);
button5.setVisible(false);
button6.setVisible(false);
button7.setVisible(false);
button8.setVisible(false);
textArea1.setVisible(false);
textArea1.setText("");
textArea1.setEditable(true);
label7.setVisible(false);
button12.setVisible(true);
button13.setVisible(true);
label4.setVisible(true);
button10.setVisible(true);
scrollpane.setVisible(true);
}
};
button14.addActionListener(as14); // 为button14按钮绑定事件
}
}
package com.neusoft.view;
import javax.swing.table.DefaultTableModel;
/*
* 类功能介绍
* 继承自DefaultTableModel,用于创建JTable组件
*/
public class MyTableModel extends DefaultTableModel {
public MyTableModel(Object[][] data, Object[] columnNames){
super(data, columnNames); //覆盖父类的构造方法
}
public boolean isCellEditable(int row, int column){
return false; //父类的方法里面为真,覆盖后改为假
}
}