




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購買合同協(xié)議書附則
- 歷年中考英語2017年浙江杭州英語試卷+答案+解析
- 燒烤經(jīng)營合同協(xié)議書
- 技能互換合同協(xié)議書
- 色彩與面料的搭配原則試題及答案
- 藍(lán)山教師考編試題及答案
- 合同特約協(xié)議書
- 手繪合同協(xié)議書
- 過戶移交協(xié)議書范本
- 2025年電商平臺知識產(chǎn)權(quán)保護(hù)與知識產(chǎn)權(quán)金融創(chuàng)新報(bào)告
- 2021年中原工學(xué)院輔導(dǎo)員招聘筆試試題及答案解析
- 作業(yè)許可檢查表
- 城市雕塑藝術(shù)工程工程量計(jì)價(jià)清單定額2022年版
- 湘美版美術(shù)三年級下冊 《漁家樂-蟳埔情》課件(共20張PPT)
- 農(nóng)產(chǎn)品集中交易市場等級技術(shù)規(guī)范-編制說明
- 張京16分鐘中英文對照翻譯稿
- 武漢綠地中心項(xiàng)目技術(shù)管理策劃書(48頁)
- 油田相關(guān)業(yè)務(wù)的稅制及稅率
- 北師大版物理八年級下冊課課練:專題訓(xùn)練 透鏡的相關(guān)作圖(含答案)
- 《國際經(jīng)濟(jì)法》案例思考題
- 投擲:原地投擲壘球
評論
0/150
提交評論