这是登录成功的界面

package chat.Frame.chat;

import chat.Frame.operation.alterColumn.changeNickname;

import chat.Frame.operation.alterColumn.changePassword;

import chat.Frame.operation.alterColumn.changeSignature;

import chat.Frame.operation.friendHandle.addFriend;

import chat.Frame.operation.friendHandle.delFriend;

import chat.Frame.tipFrame;

import chat.Project.services.sendServers;

import io.netty.channel.Channel;

import javax.swing.*;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

import java.awt.*;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

/*** 联系人界面*/

public class linkmen extends JFrame {

//容器 private JFrame frame;

//标签 private JLabel label_2, label_3, label_4, label;

//昵称 public static JLabel label_1;

//状态框 private JComboBox box, box_1, box_2;

//图片 private ImageIcon icon_1, icon;

//文本 private JTextField field_1;

//个性签名 public static JTextField field;

//面板 private JPanel panel_1, panel_3, panel;

//滚动面板 public JScrollPane panel_2;

//列表 public static JList list;

//与服务端通信的通道 private Channel channel;

//用户的id private Integer id;

//暂存oldPasswd public static JLabel label_5,label_6;

//好友列表数组 private String[] fd;

//列表 public static DefaultListModel model;

public linkmen(Integer id, Channel channel,String[] fd) {

this.id = id;

this.channel = channel;

this.fd = fd;

}

public void init() {

//初始化面板1并设置信息 panel_1 = new JPanel();

panel_1.setLayout(null);

panel_1.setLocation(0, 0);

panel_1.setBorder(BorderFactory.createTitledBorder("资料卡"));

panel_1.setSize(new Dimension(295, 148));

panel_1.setOpaque(false);

//初始化面板3并设置信息 panel_3 = new JPanel();

panel_3.setLayout(null);

panel_3.setBorder(BorderFactory.createTitledBorder("系统设置"));

panel_3.setLocation(0, 617);

panel_3.setSize(new Dimension(295, 55));

panel_3.setOpaque(false);

//设置头像标签 label_2 = new JLabel(new ImageIcon("E:\\聊天软件\\untitled\\src\\imageSource\\4.png"));

label_2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

label_2.setBounds(15, 15, 100, 100);

panel_1.add(label_2);

//初始暂存标签 label_5 = new JLabel();

label_6 = new JLabel();

//设置昵称标签 label_1 = new JLabel("");

label_1.setBounds(130, 10, 100, 30);

label_1.setFont(new Font("宋体", Font.PLAIN, 18));

panel_1.add(label_1);

list = new JList(model);

//设置每个列表的高 list.setFixedCellHeight(20);

list.setSelectionBackground(new Color(0xD8FF2F));

list.addListSelectionListener(new ListSelectionListener() {

@Override

public void valueChanged(ListSelectionEvent e) {

//打开一个聊天窗口 if (e.getValueIsAdjusting()) {

for (int i = 0; i < model.size(); i++) {

if (model.get(i).equals(list.getSelectedValue())){

//获取id有错误 int ids = new sendServers(channel).getId((String) list.getSelectedValue());

if (ids!=0) {

new sendServers(channel).friendIsActive(ids);

new ChatFrame(ids, channel).setVisible(true);

}else{

System.out.println("好友不存在");

}

}

}

}

}

});

//初始化面板二 panel_2 = new JScrollPane(list);

panel_2.setBorder(BorderFactory.createTitledBorder("联系人"));

panel_2.setLocation(0, 147);

panel_2.setSize(new Dimension(295, 470));

panel_2.getViewport().setOpaque(false);

list.setOpaque(false);

panel_2.setOpaque(false);

//设置在线状态bBox(); box = new JComboBox();

box.addItem("✅在线");

box.addItem("\uD83D\uDCBF隐身");

box.addItem("\uD83D\uDCBB忙碌");

box.addItem("❎离线");

box.setBounds(200, 10, 70, 30);

panel_1.add(box);

//设置个性签名的标签 label_4 = new JLabel("个性签名:");

label_4.setFont(new Font("宋体", Font.PLAIN, 16));

label_4.setForeground(Color.BLUE);

label_4.setBounds(120, 50, 100, 20);

panel_1.add(label_4);

//设置文本 field = new JTextField("");

field.setBounds(120, 80, 160, 30);

panel_1.add(field);

label_3 = new JLabel("\uD83D\uDD0D");

label_3.setForeground(Color.RED);

label_3.setBounds(10, 122, 20, 20);

panel_1.add(label_3);

//设置搜索栏 field_1 = new JTextField();

field_1.setBounds(30, 120, 250, 25);

panel_1.add(field_1);

//对面板三进行初始化 box_1 = new JComboBox();

box_1.addItem("\uD83D\uDD12\uD83D\uDD28\uD83D\uDD13");

box_1.addItem("修改密码");

box_1.addItem("修改昵称");

box_1.addItem("修改签名");

box_1.setBounds(8, 20, 100, 25);

panel_3.add(box_1);

box_1.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

if ("修改签名".equals(box_1.getSelectedItem())) {

//执行一次 if (e.getStateChange() == ItemEvent.SELECTED) {

changeSignature changeSignature = new changeSignature(linkmen.this);

changeSignature.setVisible(true);

field.setText(changeSignature.jTextField.getText());

String signature = field.getText();

//存储签名的方法 new sendServers(channel).modifySignature(signature, id);

}

}

if ("修改密码".equals(box_1.getSelectedItem())) {

if (e.getStateChange() == ItemEvent.SELECTED) {

changePassword changePassword = new changePassword(linkmen.this);

changePassword.setVisible(true);

label_5.setText(changePassword.oldPassword.getText());

String oldPasswd = label_5.getText();

label_6.setText(new String(changePassword.newPassword.getPassword()));

String newPasswd = label_6.getText();

//进行验证 new sendServers(channel).verifyPasswd(oldPasswd, id,newPasswd);

}

}

if ("修改昵称".equals(box_1.getSelectedItem())) {

if (e.getStateChange() == ItemEvent.SELECTED) {

changeNickname changeNickname = new changeNickname(linkmen.this);

changeNickname.setVisible(true);

label_1.setText(changeNickname.jTextField.getText());

String nickname = label_1.getText();

//存储昵称 new sendServers(channel).modifyNickname(nickname, id);

}

}

}

});

//添加好友、删除好友 box_2 = new JComboBox();

box_2.addItem("\uD83D\uDC65");

box_2.addItem("添加好友");

box_2.addItem("删除好友");

box_2.setBounds(170, 20, 100, 25);

box_2.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

if ("添加好友".equals(box_2.getSelectedItem())) {

if (e.getStateChange() == ItemEvent.SELECTED) {

addFriend addFriend = new addFriend(linkmen.this);

addFriend.setVisible(true);

//读取要搜索的ID String friendIds = addFriend.jTextField.getText();

//判断是否是字符串 if (judgeDigit(friendIds)){

int friendId = Integer.parseInt(friendIds);

//搜索数据库 new sendServers(channel).addFriendOperate(friendId,id,label_1.getText());

}else {

new tipFrame().init("输入参数错误");

}

}

}

if ("删除好友".equals(box_2.getSelectedItem())) {

if (e.getStateChange() == ItemEvent.SELECTED) {

delFriend delFriend = new delFriend(linkmen.this);

delFriend.setVisible(true);

//对其数据库进行删除操作 String friendIds = delFriend.TextField.getText();

//判断是否是字符串 if(judgeDigit(friendIds)){

int friendId = Integer.parseInt(friendIds);

//操作数据库 new sendServers(channel).delFriendOperate(friendId,id,label_1.getText());

}else{

new tipFrame().init("输入参数错误");

}

}

}

}

});

panel_3.add(box_2);

//设置frame信息 frame = new JFrame();

//设置窗体信息 frame.setTitle("腾讯QQ");

//给窗体设置图片 icon_1 = new ImageIcon("E:\\聊天软件\\untitled\\src\\imageSource\\3.png");

frame.setIconImage(icon_1.getImage());

icon = new ImageIcon("E:\\聊天软件\\untitled\\src\\imageSource\\5.png");

label = new JLabel(icon);

//获取窗口的第二层,将label放入 frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));

//获取frame的顶层容器,并设置为透明 panel = (JPanel) frame.getContentPane();

panel.setOpaque(false);

frame.setLayout(null);

frame.setLocation(750, 150);

frame.setSize(287, 700);

frame.setVisible(true);

frame.setResizable(false);

label.setBounds(0, 0, 287, 700);

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

frame.add(panel_1);

frame.add(panel_2);

frame.add(panel_3);

}

public void mian() {

//初始化面板2并设置信息 model = new DefaultListModel<>();

for (int i = 0; i < fd.length; i++) {

model.addElement(fd[i]);

}

init();

//更新昵称和签名 new sendServers(channel).update(id);

//获取用户的昵称,和好友列表

//设置签名和昵称字体初始样式和大小 label_1.setFont(new Font("宋体", Font.PLAIN, 18));

field.setFont(new Font("宋体", Font.PLAIN, 18));

}

//判断是否是数字 private static boolean judgeDigit(String string){

for (int i = 0; i < string.length(); i++) {

if (!Character.isDigit(string.charAt(i))){

return false;

}

}

return true;

}

}

qq聊天界面 java_JAVA基于Swing和netty仿QQ界面聊天小项目相关推荐

  1. 仿qq左滑删除listview_Java基于Swing和Netty仿QQ界面聊天小项目

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 来源:b ...

  2. Java基于Swing和Netty仿QQ界面聊天小项目

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:blog.csdn.net/weixin_44048 ...

  3. JAVA: 初级项目之基于Swing界面的仿QQ(三)

    模块 进度 登录 √ 注册 √ 信息交互 √ 用户显示 √ 群显示 √ 点对点聊天 × 点对点聊天还有一个难点,发送表情和文件 发送表情 基于Swing界面中只有JTextPane可以以文本的格式输出 ...

  4. JAVA:初级项目之 基于Swing界面的仿QQ(二)

    模块 进度 登录 √ 注册 √ 信息交互 √ 在上一章中已经完成了上述操作,若有问题的可以私聊一起研究. 在完成了登录操作后,通过信息的交互,成功进入到了主界面.这时候就面临了几个问题. 1:好友的显 ...

  5. 基于环信的仿QQ即时通讯的简单实现

    代码地址如下: http://www.demodashi.com/demo/11645.html 我的博客地址 之前一直想实现聊天的功能,但是感觉有点困难,今天看了环信的API,就利用下午的时间动手试 ...

  6. 视频教程-网络聊天室Java基础版(Socket_Swing编程)仿QQ聊天-Java

    网络聊天室Java基础版(Socket_Swing编程)仿QQ聊天 IT行业资深从业者,7年资深Java高级开发,Java架构师.曾就职银行.电信等行业多家上市公司.担任项目负责人,软件架构师.有丰富 ...

  7. 悄悄说--一个Swing界面的仿qq聊天软件

    1.项目简介 一个仿QQ聊天的软件,实现了用户注册,登录,私聊,创建群组进行多人聊天 2.功能描述 用户进行注册自己的用户名,密码,以及个人简介,然后进行登录 当用户注册成功时,会弹出一个注册成功提示 ...

  8. Swing制作高仿QQ界面包含主界面、聊天窗口、系统设置窗口|圆角界面|透明|颜色|渲染|换肤

    最近几天闲着没事,练习了一下.编写了一个模仿QQ的界面,主要是练习Swing.呵呵,基本上使用到了我博客前面讲的各种技术,在这里跟大家分享了.我们先来看看主界面:       左边的界面是用Swing ...

  9. Swing学习----------实现仿QQ注册功能

    在上一次的博客中实现了一个仿QQ的登录界面,现在将实现一个注册QQ账号的功能,在本文中将制作一个QQ注册的页面,然后通过一些swing中的组件来获取用户的信息,最后通过点击注册按钮将注册信息保存到My ...

最新文章

  1. python的类和对象_Python类与对象实验
  2. Nodejs简介以及Windows上安装Nodejs
  3. RMAN 不完全恢复
  4. BAT脚本加防火墙455端口
  5. VS2015编译Poco+openssl,使用Poco发送HTTPS请求
  6. CentOS5.6下配置rsync内网同步数据到外网
  7. Django从理论到实战(part2)--virtualenvwrapper
  8. 装饰者模式如何拯救了我的一天
  9. 第二章导数与微分思维导图_线性代数第二章 矩阵 思维导图
  10. MyBatis中selectByExample和selectByExampleWithBLOBs区别
  11. 每日算法系列【LeetCode 312】戳气球
  12. 扇贝有道180920每日一句
  13. 微电影|小白创作微电影的辛酸
  14. linux安装Vim-plug和配置.vimrc文件
  15. 1.27(Bomb Game)
  16. python找不到文件怎么办_python中open找不到文件怎么解决
  17. 有一种存储英文单词的方法,是把单词的所有字母串在一个单链表上。为了节省一点空间,如果有两个单词有同样的后缀,就让它们共享这个后缀。下图给出了单词“loading”和“being”的存储形式。
  18. 前端文字点击出现蓝底
  19. 2020届校招浦发银行 信息科技 创新岗 面经及历年汇总~
  20. 【工业互联网】工业互联网

热门文章

  1. 干货收藏|百万UP主都在用的创作小帮手
  2. 论文参考文献引用和自动更新方法
  3. 中兴java翻盖_中兴折叠手机专利曝光:柔性翻盖屏+双摄
  4. 三星折叠屏这下彻底杯具了
  5. 与奇点机智一起,探寻电商智能客服的“致命细节”|白洞战报
  6. 如何让你爱的人也爱上你?
  7. JS模拟京东搜索框案例 模拟京东快递单号查询案例
  8. 无线抄表与服务器,无线抄表是什么--老兵聊电之
  9. layui数据表格时间戳转换为时间格式的方法
  10. 毕业设计之 --- 微信小程序开发