Java基于Swing和netty實(shí)現(xiàn)仿QQ界面聊天小項(xiàng)目_第1頁
Java基于Swing和netty實(shí)現(xiàn)仿QQ界面聊天小項(xiàng)目_第2頁
Java基于Swing和netty實(shí)現(xiàn)仿QQ界面聊天小項(xiàng)目_第3頁
Java基于Swing和netty實(shí)現(xiàn)仿QQ界面聊天小項(xiàng)目_第4頁
Java基于Swing和netty實(shí)現(xiàn)仿QQ界面聊天小項(xiàng)目_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

panel_3.setBorder(BorderFactory.createTitledBorder("系統(tǒng)設(shè)置"));

panel_3.setLocation(0,617);

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

panel_3.setOpaque(false);

//設(shè)置頭像標(biāo)簽

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

//初始暫存標(biāo)簽

label_5=newJLabel();

label_6=newJLabel();

//設(shè)置昵稱標(biāo)簽

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

//設(shè)置每個(gè)列表的高

list.setFixedCellHeight(20);

list.setSelectionBackground(newColor(0xD8FF2F));

list.addListSelectionListener(newListSelectionListener(){

@Override

publicvoidvalueChanged(ListSelectionEvente){

//打開一個(gè)聊天窗口

if(e.getValueIsAdjusting()){

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

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

//獲取id有錯(cuò)誤

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("聯(lián)系人"));

panel_2.setLocation(0,147);

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

panel_2.getViewport().setOpaque(false);

list.setOpaque(false);

panel_2.setOpaque(false);

//設(shè)置在線狀態(tài)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);

//設(shè)置個(gè)性簽名的標(biāo)簽

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

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

label_4.setForeground(Color.BLUE);

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

panel_1.add(label_4);

//設(shè)置文本

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

//設(shè)置搜索欄

field_1=newJTextField();

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

panel_1.add(field_1);

//對面板三進(jìn)行初始化

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

//執(zhí)行一次

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

//進(jìn)行驗(yàn)證

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

//搜索數(shù)據(jù)庫

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

}else{

newtipFrame().init("輸入?yún)?shù)錯(cuò)誤");

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

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

delFrienddelFriend=newdelFriend(linkmen.this);

delFriend.setVisible(true);

//對其數(shù)據(jù)庫進(jìn)行刪除操作

StringfriendIds=delFriend.TextField.getText();

//判斷是否是字符串

if(judgeDigit(friendIds)){

intfriendId=Integer.parseInt(friendIds);

//操作數(shù)據(jù)庫

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

}else{

newtipFrame().init("輸入?yún)?shù)錯(cuò)誤");

panel_3.add(box_2);

//設(shè)置frame信息

frame=newJFrame();

//設(shè)置窗體信息

frame.setTitle("騰訊QQ");

//給窗體設(shè)置圖片

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的頂層容器,并設(shè)置為透明

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并設(shè)置信息

model=newDefaultListModel();

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

model.addElement(fd[i]);

init();

//更新昵稱和簽名

newsendServers(channel).update(id);

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

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

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

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

//判斷是否是數(shù)字

privatestaticbooleanjudgeDigit(Stringstring){

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

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

returnfalse;

returntrue;

}

4.tipFrame

提示操作狀態(tài)窗口

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;

//顯示錯(cuò)誤信息

publicJLabellabel;

//確認(rèn)按鈕

privateJButtonbutton;

publictipFrame(){

publicvoidinit(Stringmsg){

container=get

溫馨提示

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

評論

0/150

提交評論