⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findfriend.java

📁 实现TCP/UDP的socket编程
💻 JAVA
字号:
package Form;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import DataLayer.SqlHelper;
import business.*;

public class FindFriend extends JFrame {

	/**
	 * Launch the application
	 * @param args
	 */
	private DefaultTableModel defaultModel;
	private JTable table;
	private ResultSet rs;
	private JScrollPane scrollPane;
	private SqlHelper sh = new SqlHelper();
	private JPopupMenu pm = new JPopupMenu();
	private JMenuItem look;
	private JMenuItem find;
	private JMenuItem addition;
	private int userList;
	private int friendNum;
	private int userNum;
	private Client parent;
	
	//为窗体定义事件
	public void register()
	{
	    table.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent e) {
				// TODO 自动生成方法存根
				int mods=e.getModifiers(); 
				if((mods&InputEvent.BUTTON3_MASK)!=0) 
				{ 
					pm.show(table, e.getX(),e.getY());
					if(table.getSelectedRow()>=0)
					friendNum = new Integer((String) table.getValueAt(table.getSelectedRow(), 0)).intValue();
				}
			}
	    	
	    });
	    //查看资料获取的事件
	    look.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(friendNum>=10000)
				{
					Info info = new Info(FindFriend.this,"",false,friendNum);
					info.setVisible(true);
				}
			}
	    	
	    });
	    addition.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(userNum==friendNum)
				{
					JOptionPane.showMessageDialog(FindFriend.this, "不能加自己");
					return;
				}
				Friend f = new Friend(userNum,friendNum);
				if(f.addFriend()==0)
				{
					JOptionPane.showMessageDialog(FindFriend.this, "该用户已经是好友!");
				}
				else
				{
					JOptionPane.showMessageDialog(FindFriend.this, "加入成功");
					parent.updateClient();
				}
			}
	    	
	    });
	    find.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				String input = JOptionPane.showInputDialog(null, "请输入要查询的账号", "Input", JOptionPane.QUESTION_MESSAGE);
				if(input==null)
				{
					return;
				}
				int num = -1;
				try
				{
					num = new Integer(input).intValue();
				
				}
				catch(Exception ex)
				{
					JOptionPane.showMessageDialog(FindFriend.this, "该用户不用存在");
					return;
				}
				if(User.getName(num)!=null||!User.getName(num).equals(""))
				{
					String sql = "SELECT userNum,userName,sex,isOnLine FROM tbl_Users where userNum ="+num+"order by isOnLine desc";
					bind(sql);
				}
			}
	    	
	    });
	}
	
	//为表格做数据绑定
	public void bind(String sql)
	{
		String Head[] = {"用户账号","用户名","性别","是否在线"}; 
		Object info[][] = {};
		try{		
			rs =  sh.getQuery(sql);
			defaultModel = new DefaultTableModel(info,Head);
		    table.setModel(defaultModel);//以该模型为基础建表
		    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//将表设置成不自动调整列的宽度;使用滚动条。      	
		    TableColumn column;
		    table.add(pm);
			column=table.getColumnModel().getColumn(0);
			column.setPreferredWidth(100);
		    column=table.getColumnModel().getColumn(1);
			column.setPreferredWidth(100);
			column=table.getColumnModel().getColumn(2);
			column.setPreferredWidth(100);
			column=table.getColumnModel().getColumn(3);
			column.setPreferredWidth(100);
			while(rs.next()){
				String userNum = rs.getString(1);
				String userName = rs.getString(2);
				String sex = rs.getString(3);
				String online = "不在线";
				if(rs.getInt(4)==1)
				{
					online = "在线";
				}
				defaultModel.addRow(new Vector());
				defaultModel.setValueAt(userNum, defaultModel.getRowCount() - 1, 0);//填写记录
			    defaultModel.setValueAt(userName, defaultModel.getRowCount() - 1, 1);
			    defaultModel.setValueAt(sex, defaultModel.getRowCount() - 1, 2);
			    defaultModel.setValueAt(online, defaultModel.getRowCount() - 1, 3);
			}
		}catch(SQLException ex){
			ex.printStackTrace();
		}
	}
	//为窗体初始化
	public void setup()
	{
		look = new JMenuItem("查看资料");
		addition =new JMenuItem("加为好友");
		find = new JMenuItem("精确查找");
		pm.add(look);
		pm.add(new JSeparator());
		pm.add(addition);
		pm.add(new JSeparator());
		pm.add(find);
		scrollPane = new JScrollPane(table);
        add(scrollPane, BorderLayout.CENTER);
		table = new JTable(3,5);
		scrollPane.setViewportView(table);
		String sql = "SELECT userNum,userName,sex,isOnLine FROM tbl_Users order by isOnLine desc";
		bind(sql);
		this.getContentPane().add(scrollPane);
		register();
	}
	
	public FindFriend(Client parent ,int userNum) {
		super("查找用户界面");
		this.userNum = userNum;
		this.parent = parent;
		setBounds(100, 100, 411, 200);
		sh.setStatement(sh.getConnection());
		setup();
		this.setResizable(false);
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				dispose();
			}
		});
		//
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -