实习笔记

东软实习:(笔记)

(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;        //父类的方法里面为真,覆盖后改为假
    }   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值