




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州安置房購房合同協議
- 軟件項目承包合同協議
- 漏水保修協議書
- 收購企業保密協議
- 退房協議書合同協議
- 汽車原廠協議書
- 消防聯盟協議書
- 民事終結協議書
- 建筑工程招投標與合同管理教材
- 產品聯合研發戰略合作協議簽署備忘錄
- 2024年彩票及票務印刷合同
- 2024年水產技術養殖服務合同范本
- 蒸壓加氣混凝土墻板
- 豆腐乳市場洞察報告
- 遼寧省協作校2024-2025學年高二英語下學期期末考試試題
- 電解車間危險有害因素分析
- 物業消防安全管理培訓【共54張課件】
- JBT 12530.1-2015 塑料焊縫無損檢測方法 第1部分:通.用要求
- DL∕T 1550-2016 礦物絕緣油中金屬銅、鐵含量測定法旋轉圓盤電極發射光譜法
- 墳墓贈與合同范本
- Module 2 Unit 1 She's listening to the radio(教案)-2023-2024學年外研版(一起)英語二年級下冊
評論
0/150
提交評論