Java基于Swing和netty實現仿QQ界面聊天小項目_第1頁
Java基于Swing和netty實現仿QQ界面聊天小項目_第2頁
Java基于Swing和netty實現仿QQ界面聊天小項目_第3頁
Java基于Swing和netty實現仿QQ界面聊天小項目_第4頁
Java基于Swing和netty實現仿QQ界面聊天小項目_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第Java基于Swing和netty實現仿QQ界面聊天小項目panel_3.setLayout(null);

panel_3.setBorder(BorderFactory.createTitledBorder("系統設置"));

panel_3.setLocation(0,617);

panel_3.setSize(newDimension(295,55));

panel_3.setOpaque(false);

//設置頭像標簽

label_2=newJLabel(newImageIcon("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=newJLabel();

label_6=newJLabel();

//設置昵稱標簽

label_1=newJLabel("");

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

label_1.setFont(newFont("宋體",Font.PLAIN,18));

panel_1.add(label_1);

list=newJListString(model);

//設置每個列表的高

list.setFixedCellHeight(20);

list.setSelectionBackground(newColor(0xD8FF2F));

list.addListSelectionListener(newListSelectionListener(){

@Override

publicvoidvalueChanged(ListSelectionEvente){

//打開一個聊天窗口

if(e.getValueIsAdjusting()){

for(inti=0;imodel.size();i++){

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

//獲取id有錯誤

intids=newsendServers(channel).getId((String)list.getSelectedValue());

if(ids!=0){

newsendServers(channel).friendIsActive(ids);

newChatFrame(ids,channel).setVisible(true);

}else{

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

//初始化面板二

panel_2=newJScrollPane(list);

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

panel_2.setLocation(0,147);

panel_2.setSize(newDimension(295,470));

panel_2.getViewport().setOpaque(false);

list.setOpaque(false);

panel_2.setOpaque(false);

//設置在線狀態bBox();

box=newJComboBox();

box.addItem("?在線");

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

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

box.addItem("?離線");

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

panel_1.add(box);

//設置個性簽名的標簽

label_4=newJLabel("個性簽名:");

label_4.setFont(newFont("宋體",Font.PLAIN,16));

label_4.setForeground(Color.BLUE);

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

panel_1.add(label_4);

//設置文本

field=newJTextField("");

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

panel_1.add(field);

label_3=newJLabel("\uD83D\uDD0D");

label_3.setForeground(Color.RED);

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

panel_1.add(label_3);

//設置搜索欄

field_1=newJTextField();

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

panel_1.add(field_1);

//對面板三進行初始化

box_1=newJComboBox();

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(newItemListener(){

@Override

publicvoiditemStateChanged(ItemEvente){

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

//執行一次

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

changeSignaturechangeSignature=newchangeSignature(linkmen.this);

changeSignature.setVisible(true);

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

Stringsignature=field.getText();

//存儲簽名的方法

newsendServers(channel).modifySignature(signature,id);

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

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

changePasswordchangePassword=newchangePassword(linkmen.this);

changePassword.setVisible(true);

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

StringoldPasswd=label_5.getText();

label_6.setText(newString(changePassword.newPassword.getPassword()));

StringnewPasswd=label_6.getText();

//進行驗證

newsendServers(channel).verifyPasswd(oldPasswd,id,newPasswd);

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

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

changeNicknamechangeNickname=newchangeNickname(linkmen.this);

changeNickname.setVisible(true);

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

Stringnickname=label_1.getText();

//存儲昵稱

newsendServers(channel).modifyNickname(nickname,id);

//添加好友、刪除好友

box_2=newJComboBox();

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

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

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

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

box_2.addItemListener(newItemListener(){

@Override

publicvoiditemStateChanged(ItemEvente){

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

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

addFriendaddFriend=newaddFriend(linkmen.this);

addFriend.setVisible(true);

//讀取要搜索的ID

StringfriendIds=addFriend.jTextField.getText();

//判斷是否是字符串

if(judgeDigit(friendIds)){

intfriendId=Integer.parseInt(friendIds);

//搜索數據庫

newsendServers(channel).addFriendOperate(friendId,id,label_1.getText());

}else{

newtipFrame().init("輸入參數錯誤");

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

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

delFrienddelFriend=newdelFriend(linkmen.this);

delFriend.setVisible(true);

//對其數據庫進行刪除操作

StringfriendIds=delFriend.TextField.getText();

//判斷是否是字符串

if(judgeDigit(friendIds)){

intfriendId=Integer.parseInt(friendIds);

//操作數據庫

newsendServers(channel).delFriendOperate(friendId,id,label_1.getText());

}else{

newtipFrame().init("輸入參數錯誤");

panel_3.add(box_2);

//設置frame信息

frame=newJFrame();

//設置窗體信息

frame.setTitle("騰訊QQ");

//給窗體設置圖片

icon_1=newImageIcon("E:\\聊天軟件\\untitled\\src\\imageSource\\3.png");

frame.setIconImage(icon_1.getImage());

icon=newImageIcon("E:\\聊天軟件\\untitled\\src\\imageSource\\5.png");

label=newJLabel(icon);

//獲取窗口的第二層,將label放入

frame.getLayeredPane().add(label,newInteger(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);

publicvoidmian(){

//初始化面板2并設置信息

model=newDefaultListModel();

for(inti=0;ifd.length;i++){

model.addElement(fd[i]);

init();

//更新昵稱和簽名

newsendServers(channel).update(id);

//獲取用戶的昵稱,和好友列表

//設置簽名和昵稱字體初始樣式和大小

label_1.setFont(newFont("宋體",Font.PLAIN,18));

field.setFont(newFont("宋體",Font.PLAIN,18));

//判斷是否是數字

privatestaticbooleanjudgeDigit(Stringstring){

for(inti=0;istring.length();i++){

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

returnfalse;

returntrue;

}

4.tipFrame

提示操作狀態窗口

packagechat.Frame;

importchat.Frame.chat.linkmen;

importchat.Frame.operation.alterColumn.changeNickname;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

publicclasstipFrameextendsJDialog{

privateContainercontainer;

//顯示錯誤信息

publicJLabellabel;

//確認按鈕

privateJButtonbutton;

publictipFrame(){

publicvoidinit(Stringmsg){

container=get

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論