東軟實習:(筆記)
(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; //父類的方法裏面爲真,覆蓋後改爲假
}
}