實習筆記

東軟實習:(筆記)

(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);

3GridLayout:

        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;        //父類的方法裏面爲真,覆蓋後改爲假
    }   
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章