用java做QQ登錄界面的寫法如下:

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),下花園網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:下花園等地區(qū)。下花園做網(wǎng)站價(jià)格咨詢:13518219792
package ch10;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
1、//定義該類繼承自JFrame,實(shí)現(xiàn)ActionListener接口
public class LoginTest extends JFrame implements ActionListener
{
2、//創(chuàng)建JPanel對(duì)象
private JPanel jp=new JPanel();
3、//創(chuàng)建3個(gè)標(biāo)并加入數(shù)組
JLabel name = new JLabel("請(qǐng)輸入用戶名");
JLabel password = new JLabel("請(qǐng)輸入密碼");
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、//設(shè)置布局管理器為空布局,這里自己擺放按鈕、標(biāo)簽和文本框
jp.setLayout(null);
for(int i=0;i2;i++)
{
7、//設(shè)置標(biāo)簽和按扭的位置與大小
jl[i].setBounds(30,20+40*i,180,20);
jb[i].setBounds(30+110*i,100,80,20);
8、//添加標(biāo)簽和按扭到JPanel容器中
jp.add(jl[i]);
jp.add(jb[i]);
//為2個(gè)按鈕注冊(cè)動(dòng)作事件監(jiān)聽(tīng)器
jb[i].addActionListener(this);
}
9、//設(shè)置文本框的位置和大小,注意滿足美觀并足夠用戶名的長(zhǎng)度
jName.setBounds(130,15,100,20);
10、//添加文本框到JPanel容器中
jp.add(jName);
11、//為文本框注冊(cè)動(dòng)作事件監(jiān)聽(tīng)器
jName.addActionListener(this);
12、//設(shè)置密碼框的位置和大小,注意滿足美觀和足夠密碼的長(zhǎng)度
jPassword.setBounds(130,60,100,20);
13、//添加密碼框到JPanel容器中
jp.add(jPassword);
14、//設(shè)置密碼框中的回顯字符,這里設(shè)置美元符號(hào)
jPassword.setEchoChar('$');
15、//為密碼框注冊(cè)動(dòng)作事件監(jiān)聽(tīng)器
jPassword.addActionListener(this);
16、//設(shè)置用于顯示登陸狀態(tài)的標(biāo)簽大小位置,并將其添加進(jìn)JPanel容器
jl[2].setBounds(10,180,270,20);
jp.add(jl[2]);
17、//添加JPanel容器到窗體中
this.add(jp);
18、//設(shè)置窗體的標(biāo)題、位置、大小、可見(jiàn)性及關(guān)閉動(dòng)作
this.setTitle("登陸窗口");
this.setBounds(200,200,270,250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
19、//實(shí)現(xiàn)動(dòng)作監(jiān)聽(tīng)器接口中的方法actionPerformed
public void actionPerformed(ActionEvent e)
{
20、//如果事件源為文本框
if(e.getSource()==jName)
{
21、//切換輸入焦點(diǎn)到密碼框
jPassword.requestFocus();
}
22、//如果事件源為重置按扭
else if(e.getSource()==jb[1])
{
23、//清空姓名文本框、密碼框和show標(biāo)簽中的所有信息
jl[2].setText("");
jName.setText("");
jPassword.setText("");
24、//讓輸入焦點(diǎn)回到文本框
jName.requestFocus();
}
25、//如果事件源為登陸按鈕,則判斷登錄名和密碼是否正確
else
{
26、//判斷用戶名和密碼是否匹配
if(jName.getText().equals("lixiangguo")
String.valueOf(jPassword.getPassword()).equals("19801001"))
{
27、jl[2].setText("登陸成功,歡迎您的到來(lái)!");
}
else
{
28、jl[2].setText("對(duì)不起,您的用戶名或密碼錯(cuò)誤!");
}
}
}
public static void main(String[] args)
{
29、//創(chuàng)建LoginTest窗體對(duì)象
new LoginTest();
}
}
是javeSE。主要用來(lái)編寫一些界面程序,帶窗口的。
ME是專門用來(lái)手機(jī)開發(fā)的。不過(guò)前途不咋滴了。
EE是用來(lái)進(jìn)行企業(yè)級(jí)開發(fā)的。多少是BS編程,就是網(wǎng)站類程序。
這3個(gè)的基本的java基礎(chǔ)類都是一樣 的。
區(qū)別是:
SE含有SWing等界面類。
ME有很多對(duì)手機(jī)硬件操作的類。
EE有很多WEB開發(fā)的類。
希望對(duì)你有所幫助!o(∩_∩)o 哈哈
package ch10;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//定義該類繼承自JFrame,實(shí)現(xiàn)ActionListener接口
public class LoginTest extends JFrame implements ActionListener
{
//創(chuàng)建JPanel對(duì)象
private JPanel jp=new JPanel();
//創(chuàng)建3個(gè)標(biāo)并加入數(shù)組
JLabel name = new JLabel("請(qǐng)輸入用戶名");
JLabel password = new JLabel("請(qǐng)輸入密碼");
JLabel show = new JLabel("");
private JLabel[] jl={name,password,show};
//創(chuàng)建登陸和重置按扭并加入數(shù)組
JButton login = new JButton("登陸");
JButton reset = new JButton("重置");
private JButton[] jb={login,reset};
//創(chuàng)建文本框以及密碼框
private JTextField jName=new JTextField();
private JPasswordField jPassword =new JPasswordField();
public LoginTest()
{
//設(shè)置布局管理器為空布局,這里自己擺放按鈕、標(biāo)簽和文本框
jp.setLayout(null);
for(int i=0;i2;i++)
{
//設(shè)置標(biāo)簽和按扭的位置與大小
jl[i].setBounds(30,20+40*i,180,20);
jb[i].setBounds(30+110*i,100,80,20);
//添加標(biāo)簽和按扭到JPanel容器中
jp.add(jl[i]);
jp.add(jb[i]);
//為2個(gè)按鈕注冊(cè)動(dòng)作事件監(jiān)聽(tīng)器
jb[i].addActionListener(this);
}
//設(shè)置文本框的位置和大小,注意滿足美觀并足夠用戶名的長(zhǎng)度
jName.setBounds(130,15,100,20);
//添加文本框到JPanel容器中
jp.add(jName);
//為文本框注冊(cè)動(dòng)作事件監(jiān)聽(tīng)器
jName.addActionListener(this);
//設(shè)置密碼框的位置和大小,注意滿足美觀和足夠密碼的長(zhǎng)度
jPassword.setBounds(130,60,100,20);
//添加密碼框到JPanel容器中
jp.add(jPassword);
//設(shè)置密碼框中的回顯字符,這里設(shè)置美元符號(hào)
jPassword.setEchoChar('$');
//為密碼框注冊(cè)動(dòng)作事件監(jiān)聽(tīng)器
jPassword.addActionListener(this);
//設(shè)置用于顯示登陸狀態(tài)的標(biāo)簽大小位置,并將其添加進(jìn)JPanel容器
jl[2].setBounds(10,180,270,20);
jp.add(jl[2]);
//添加JPanel容器到窗體中
this.add(jp);
//設(shè)置窗體的標(biāo)題、位置、大小、可見(jiàn)性及關(guān)閉動(dòng)作
this.setTitle("登陸窗口");
this.setBounds(200,200,270,250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//實(shí)現(xiàn)動(dòng)作監(jiān)聽(tīng)器接口中的方法actionPerformed
public void actionPerformed(ActionEvent e)
{
//如果事件源為文本框
if(e.getSource()==jName)
{
//切換輸入焦點(diǎn)到密碼框
jPassword.requestFocus();
}
//如果事件源為重置按扭
else if(e.getSource()==jb[1])
{
//清空姓名文本框、密碼框和show標(biāo)簽中的所有信息
jl[2].setText("");
jName.setText("");
jPassword.setText("");
//讓輸入焦點(diǎn)回到文本框
jName.requestFocus();
}
//如果事件源為登陸按鈕,則判斷登錄名和密碼是否正確
else
{
//判斷用戶名和密碼是否匹配
if(jName.getText().equals("lixiangguo")
String.valueOf(jPassword.getPassword()).equals("19801001"))
{
jl[2].setText("登陸成功,歡迎您的到來(lái)!");
}
else
{
jl[2].setText("對(duì)不起,您的用戶名或密碼錯(cuò)誤!");
}
}
}
public static void main(String[] args)
{
//創(chuàng)建LoginTest窗體對(duì)象
new LoginTest();
}
}
這個(gè)簡(jiǎn)單點(diǎn)的
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;
/**構(gòu)造方法初始化數(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) {
}
/**用戶來(lái)注冊(cè)新的QQ號(hào)*/
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;}
}
方法/步驟
準(zhǔn)備工作
在正式接入之前你需要了解以下名詞的含義:
1. appid?:應(yīng)用的唯一標(biāo)識(shí)。在OAuth2.0認(rèn)證過(guò)程中,appid的值即為oauth_consumer_key的值。
2. appkey:appid對(duì)應(yīng)的密鑰,訪問(wèn)用戶資源時(shí)用來(lái)驗(yàn)證應(yīng)用的合法性。在OAuth2.0認(rèn)證過(guò)程中,appkey的值即為oauth_consumer_secret的值。
3. redirecturl:成功授權(quán)后的回調(diào)地址,必須是注冊(cè)appid時(shí)填寫的主域名下的地址,建議設(shè)置為網(wǎng)站首頁(yè)或網(wǎng)站的用戶中心。注意需要將url進(jìn)行URLEncode。
4. access token:用來(lái)判斷用戶在本網(wǎng)站上的登錄狀態(tài),具有3個(gè)月有效期,用戶再次登錄時(shí)自動(dòng)刷新。
5. openid:是此網(wǎng)站上唯一對(duì)應(yīng)用戶身份的標(biāo)識(shí),網(wǎng)站可將此ID進(jìn)行存儲(chǔ)便于用戶下次登錄時(shí)辨識(shí)其身份,或?qū)⑵渑c用戶在網(wǎng)站上的原有帳號(hào)進(jìn)行綁定。
第一步
要接入QQ登錄,必不可少的是appid和appkey,通過(guò)申請(qǐng)接入QQ登錄,按照相應(yīng)步驟操作即可輕松獲得,在此不做贅述。
第二步
在需要放置QQ登錄按鈕的頁(yè)面加入下面SCRIPT代碼:
script?type="text/javascript"?src=""?data-appid="APPID"?data-redirecturi="REDIRECTURI"?charset="utf-8"/script
PS:APPID?和?REDIRECTURI?換成第一步申請(qǐng)所得到的對(duì)應(yīng)內(nèi)容,REDIRECTURI?就是登錄之后返回的回調(diào)地址,在申請(qǐng)頁(yè)面自己填寫,一般寫網(wǎng)站主域名即可。注意:回調(diào)地址必須以http或https開頭。
第三步
在頁(yè)面放置一個(gè)元素節(jié)點(diǎn)用來(lái)展現(xiàn)登錄按鈕,并且指定其ID,如:
div id="qq"/div
然后在頁(yè)面加入如下SCRIPT:
script?type="text/javascript"
QC.Login({
btnId:"qq"????//插入按鈕的節(jié)點(diǎn)id
});
/script
這時(shí)就可以在頁(yè)面看到如下效果:
如對(duì)這個(gè)展示效果不滿意,也可以自定義登錄按鈕。
第四步
在 ?REDIRECTURI?即回調(diào)地址頁(yè)面加入如下SCRIPT:
script?type="text/javascript"
src=""?charset="utf-8"?data-callback="true"/script
另外:官方說(shuō)法如果回調(diào)地址頁(yè)與加入QQ登錄按鈕是同一個(gè)頁(yè)面,則只需要引用一次腳本文件。如果理解不了這種官方說(shuō)法,可以在第一步的腳本中加入data-callback="true"屬性,而忽略第四步,前提是回調(diào)地址頁(yè)與加入QQ登錄按鈕的頁(yè)面是同一個(gè)頁(yè)面。
第五步
因?yàn)镴S SDK封裝了獲取Access Token以及OpenID的方法,因此開發(fā)者不需要用開發(fā)代碼進(jìn)行獲取,直接調(diào)用QQ登錄OpenAPI即可。
調(diào)用OpenAPI時(shí),請(qǐng)統(tǒng)一遵循下述調(diào)用方式:
QC.api(api,?paras,?fmt,?method)
參數(shù)說(shuō)明:
最后
提供一種代碼接入思路,僅供參考:
QC.api("get_user_info", {}) //get_user_info是API參數(shù)
//指定接口訪問(wèn)成功的接收函數(shù),s為成功返回Response對(duì)象
?.success(function (s) {
? ? ?//成功回調(diào),通過(guò)s.data獲取OpenAPI的返回?cái)?shù)據(jù)
? ? ?nick = s.data.nickname; //獲得昵稱
? ? ?headurl = s.data.figureurl_qq_1; //獲得頭像
? ? ?if (QC.Login.check()) {//判斷是否登錄
? ? ? ? ?QC.Login.getMe(function (openId, accessToken) { //這里可以得到openId和accessToken
? ? ? ? ? ? ?//下面可以調(diào)用自己的保存方法
? ? ? ? ? ? ?……
? ? ? ? ?});
? ? ?}
?})
//指定接口訪問(wèn)失敗的接收函數(shù),f為失敗返回Response對(duì)象
?.error(function (f) {
? ? ?//失敗回調(diào)
? ? ?alert("獲取用戶信息失敗!");
?});
////指定接口完成請(qǐng)求后的接收函數(shù),c為完成請(qǐng)求返回Response對(duì)象
//.complete(function (c) {
// ? ?//完成請(qǐng)求回調(diào)
// ? ?alert("獲取用戶信息完成!");
//});
新聞名稱:qq授權(quán)登錄java代碼,java 登錄
分享路徑:http://chinadenli.net/article40/hcpjho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、定制開發(fā)、企業(yè)網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、軟件開發(fā)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)