用java是可以寫出qq的,只不過用java開發(fā)c/s的軟件不是java特長的,你要是真的想寫,就寫著練練手吧,最起碼可以鞏固java se上的知識。
在烏拉特后等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需求定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站,外貿(mào)營銷網(wǎng)站建設(shè),烏拉特后網(wǎng)站建設(shè)費(fèi)用合理。
具體怎么寫,給你個大概的思路吧,因?yàn)槲覜]辦法在這個有限的輸入框內(nèi)把所有的代碼寫完。
【1】先寫出qq的簡單界面
【2】給每個按鈕添加監(jiān)聽
【3】按鈕事件(方法)定義
【4】連接網(wǎng)絡(luò)(socket)
【5】測試
【5】其他功能添加
【6】測試
java實(shí)現(xiàn)簡單QQ登陸界面:
1.生成界面的java代碼
package?QQ2014;
import?javax.swing.*;
import?java.awt.*;
import?java.awt.event.*;
public?class?QQ2014?{
//創(chuàng)建登陸界面類
public?void?showLoginFrame(){
//創(chuàng)建船體對象
JFrame?loginFrame=new?JFrame();
//設(shè)置大小,位置,標(biāo)題
loginFrame.setSize(300,200);
loginFrame.setTitle("QQ2014");
loginFrame.setLocationRelativeTo(null);
//創(chuàng)建流式分布對象
FlowLayout?layout=new?FlowLayout();
loginFrame.setLayout(layout);
//創(chuàng)建賬戶名,密碼和輸入框
JLabel?user_name=new?JLabel("賬號:");
JLabel?user_password=new?JLabel("密碼:");
JTextField?field_name=new?JTextField(20);
JPasswordField?field_password=new?JPasswordField(20);
//創(chuàng)建登陸,重置按鈕
JButton?button_reset=new?JButton("重置");
JButton?button_login=new?JButton("登陸");
//設(shè)置窗體可見
loginFrame.setVisible(true);
//創(chuàng)建事件監(jiān)聽對象
ActionListener?action_listener1=new?ActionListener(){
public?void?actionPerformed(ActionEvent?e){
String?name=field_name.getText();
String?password=field_password.getText();
if("zhaoxin".equals(name)"123".equals(password))
{
showIndexFrame();
loginFrame.setDefaultCloseOperation(3);
loginFrame.setVisible(false);
}
else{
System.out.println("密碼錯誤,重新輸入!");
}
}
};
ActionListener?action_listener2=new?ActionListener(){
public?void?actionPerformed(ActionEvent?e){
field_name.setText("");
field_password.setText("");
}
};
//將文本輸入框,按鈕,事件監(jiān)聽對象添加
loginFrame.add(user_name);
loginFrame.add(field_name);
loginFrame.add(user_password);
loginFrame.add(field_password);
loginFrame.add(button_reset);
loginFrame.add(button_login);
button_reset.addActionListener(action_listener2);
button_login.addActionListener(action_listener1);
}
public?void?showIndexFrame(){
//創(chuàng)建窗體對象
JFrame?indexFrame=new?JFrame();
indexFrame.setSize(200,500);
indexFrame.setTitle("QQ好友列表");
indexFrame.setLocationRelativeTo(null);
//設(shè)置流式分布對象
FlowLayout?layout=new?FlowLayout(FlowLayout.CENTER,100,10);
indexFrame.setLayout(layout);
//創(chuàng)建好友按鈕
for(int?i=0;i10;i++)
{
JButton?button_friend=new?JButton("friend"+i);
//創(chuàng)建動作事件監(jiān)聽對象
ActionListener?action_listener=new?ActionListener()
{
public?void?actionPerformed(ActionEvent?e)
{
showChatFrame();
indexFrame.setVisible(false);
indexFrame.setDefaultCloseOperation(3);
}
};
button_friend.addActionListener(action_listener);
indexFrame.add(button_friend);
}
//設(shè)置窗體可見
indexFrame.setVisible(true);
}
public?void?showChatFrame(){
//創(chuàng)建窗體,大小,位置,標(biāo)題
JFrame?chatFrame=new?JFrame();
chatFrame.setSize(400,400);
chatFrame.setTitle("正在聊天中...");
chatFrame.setLocationRelativeTo(null);
//創(chuàng)建聊天記錄,輸入域
JTextArea?area_input=new?JTextArea(10,30);
JTextArea?area_record=new?JTextArea(5,30);
//創(chuàng)建流式分布對象
FlowLayout?layout=new?FlowLayout(FlowLayout.CENTER,0,10);
chatFrame.setLayout(layout);
//創(chuàng)建發(fā)送,關(guān)閉按扭
JButton?button_send=new?JButton("發(fā)送");
JButton?button_close=new?JButton("關(guān)閉");
//創(chuàng)建動作事件監(jiān)聽對象
ActionListener?action_listener1=new?ActionListener()
{
public?void?actionPerformed(ActionEvent?e){
area_record.setText(area_record.getText()+"\n"+area_input.getText());
area_input.setText("");
}
};
ActionListener?action_listener2=new?ActionListener()
{
public?void?actionPerformed(ActionEvent?e){
chatFrame.setVisible(false);
chatFrame.setDefaultCloseOperation(3);
}
};
//設(shè)置窗體可見
chatFrame.setVisible(true);
//添加按鈕,事件監(jiān)聽對象
chatFrame.add(area_record);
chatFrame.add(area_input);
chatFrame.add(button_send);
chatFrame.add(button_close);
button_send.addActionListener(action_listener1);
button_close.addActionListener(action_listener2);
}
}
復(fù)制代碼
2.java?main方法調(diào)用
package?QQ2014;
public?class?Test?{
public?static?void?main(String[]?args){
QQ2014?qq=new?QQ2014();
qq.showLoginFrame();
}
}
鈴聲就把你自己的鈴聲改成相應(yīng)的名字,替換原來的文件就可以了