用java做QQ登錄界面的寫法如下:
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、成都網(wǎng)站建設與策劃設計,慶元網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:慶元等地區(qū)。慶元做網(wǎng)站價格咨詢:18980820575
package ch10;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
1、//定義該類繼承自JFrame,實現(xiàn)ActionListener接口
public class LoginTest extends JFrame implements ActionListener
{
2、//創(chuàng)建JPanel對象
private JPanel jp=new JPanel();
3、//創(chuàng)建3個標并加入數(shù)組
JLabel name = new JLabel("請輸入用戶名");
JLabel password = new JLabel("請輸入密碼");
JLabel show = new JLabel("");
private JLabel[] jl={name,password,show};
4、//創(chuàng)建登陸和重置按扭并加入數(shù)組
JButton login = new JButton("登陸");
JButton reset = new JButton("重置");
private JButton[] jb={login,reset};
5、//創(chuàng)建文本框以及密碼框
private JTextField jName=new JTextField();
private JPasswordField jPassword =new JPasswordField();
public LoginTest()
{
6、//設置布局管理器為空布局,這里自己擺放按鈕、標簽和文本框
jp.setLayout(null);
for(int i=0;i2;i++)
{
7、//設置標簽和按扭的位置與大小
jl[i].setBounds(30,20+40*i,180,20);
jb[i].setBounds(30+110*i,100,80,20);
8、//添加標簽和按扭到JPanel容器中
jp.add(jl[i]);
jp.add(jb[i]);
//為2個按鈕注冊動作事件監(jiān)聽器
jb[i].addActionListener(this);
}
9、//設置文本框的位置和大小,注意滿足美觀并足夠用戶名的長度
jName.setBounds(130,15,100,20);
10、//添加文本框到JPanel容器中
jp.add(jName);
11、//為文本框注冊動作事件監(jiān)聽器
jName.addActionListener(this);
12、//設置密碼框的位置和大小,注意滿足美觀和足夠密碼的長度
jPassword.setBounds(130,60,100,20);
13、//添加密碼框到JPanel容器中
jp.add(jPassword);
14、//設置密碼框中的回顯字符,這里設置美元符號
jPassword.setEchoChar('$');
15、//為密碼框注冊動作事件監(jiān)聽器
jPassword.addActionListener(this);
16、//設置用于顯示登陸狀態(tài)的標簽大小位置,并將其添加進JPanel容器
jl[2].setBounds(10,180,270,20);
jp.add(jl[2]);
17、//添加JPanel容器到窗體中
this.add(jp);
18、//設置窗體的標題、位置、大小、可見性及關閉動作
this.setTitle("登陸窗口");
this.setBounds(200,200,270,250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
19、//實現(xiàn)動作監(jiān)聽器接口中的方法actionPerformed
public void actionPerformed(ActionEvent e)
{
20、//如果事件源為文本框
if(e.getSource()==jName)
{
21、//切換輸入焦點到密碼框
jPassword.requestFocus();
}
22、//如果事件源為重置按扭
else if(e.getSource()==jb[1])
{
23、//清空姓名文本框、密碼框和show標簽中的所有信息
jl[2].setText("");
jName.setText("");
jPassword.setText("");
24、//讓輸入焦點回到文本框
jName.requestFocus();
}
25、//如果事件源為登陸按鈕,則判斷登錄名和密碼是否正確
else
{
26、//判斷用戶名和密碼是否匹配
if(jName.getText().equals("lixiangguo")
String.valueOf(jPassword.getPassword()).equals("19801001"))
{
27、jl[2].setText("登陸成功,歡迎您的到來!");
}
else
{
28、jl[2].setText("對不起,您的用戶名或密碼錯誤!");
}
}
}
public static void main(String[] args)
{
29、//創(chuàng)建LoginTest窗體對象
new LoginTest();
}
}
用java是可以寫出qq的,只不過用java開發(fā)c/s的軟件不是java特長的,你要是真的想寫,就寫著練練手吧,最起碼可以鞏固java se上的知識。
具體怎么寫,給你個大概的思路吧,因為我沒辦法在這個有限的輸入框內(nèi)把所有的代碼寫完。
【1】先寫出qq的簡單界面
【2】給每個按鈕添加監(jiān)聽
【3】按鈕事件(方法)定義
【4】連接網(wǎng)絡(socket)
【5】測試
【5】其他功能添加
【6】測試
import java.io.*;
public class QQ_Manager {
private int max_user=1000;
private String[] userID;
private String[] userName;
private String[] userPW;
private String[] userIP;
private int userCounts;
private int userOnline;
private String fileName;
/**構造方法初始化數(shù)據(jù)文件等*/
QQ_Manager(String fileName){this.fileName=fileName;}
/**將現(xiàn)有的QQ用戶和記錄寫入數(shù)據(jù)文件*/
public synchronized void write_userDataFile(String fileName) {
}
/**從數(shù)據(jù)文件中讀取QQ用戶記錄*/
public synchronized void read_userDataFile(String fileName) {
}
/**用戶來注冊新的QQ號*/
public synchronized boolean regist_QQ(String userName,String PW){return false;}
/**QQ用戶登陸處理*/
public synchronized boolean login_QQ(String id,String pw){return true;}
/**QQ用戶離線處理*/
public synchronized boolean logout_QQ(String id, String pw){return false;}
/**返回QQ在線列表*/
public String get_QQList(){return null;}
}
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Demo extends JFrame{
Container contentPane;
ImageIcon img = new ImageIcon("002.jpg");
JPanel paneTop = new JPanel();
JPanel paneMid = new JPanel();
JPanel paneBut = new JPanel();
JPanel paneAll = new JPanel();
JLabel lblTop = new JLabel();
JLabel lblName = new JLabel();
JLabel lblPwd = new JLabel();
JLabel lblApply = new JLabel();
JLabel lblForget = new JLabel();
JLabel lblModel = new JLabel();
JLabel lblNull = new JLabel();
JTextField txtName = new JTextField(15);
JPasswordField txtPwd = new JPasswordField(15);
JComboBox cmb = new JComboBox();
JCheckBox chk = new JCheckBox();
JButton btnKill = new JButton("查殺木馬");
JButton btnSet = new JButton("設置");
JButton btnLogin = new JButton("登錄");
Demo(){
lblTop.setIcon(img);
paneTop.add(lblTop);
lblName.setText("QQ帳號:");
lblApply.setText("申請帳號 ");
lblPwd.setText("QQ密碼:");
lblForget.setText("忘記密碼?");
lblModel.setText("狀態(tài):");
String[] s1 = {"隱身","在線","忙碌"};
cmb.addItem(s1[0]);
cmb.addItem(s1[1]);
cmb.addItem(s1[2]);
chk.setText("自動登錄");
paneMid.add(lblName);
paneMid.add(txtName);
paneMid.add(lblApply);
paneMid.add(lblPwd);
paneMid.add(txtPwd);
paneMid.add(lblForget);
paneMid.add(lblModel);
paneMid.add(cmb);
paneMid.add(chk);
paneBut.add(btnKill);
paneBut.add(btnSet);
paneBut.add(btnLogin);
contentPane = this.getContentPane();
contentPane.add(paneTop,BorderLayout.NORTH);
contentPane.add(paneMid,BorderLayout.CENTER);
contentPane.add(paneBut,BorderLayout.SOUTH);
setTitle("歡迎使用QQ");
setSize(330,240);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - getSize().width)/2,(screen.height - getSize().height)/2 );
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
Demo d = new Demo();
}
}