本文目录一览:
用java怎么实现QQ登录界面?
用java做QQ登录界面的写法如下:
package ch10;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//定义该类继承自JFrame,实现ActionListener接口
public class LoginTest extends JFrame implements ActionListener {
//创建JPanel对象
private JPanel jp = new JPanel();
//创建3个标并加入数组
JLabel name = new JLabel("请输入用户名");
JLabel password = new JLabel("请输入密码");
JLabel show = new JLabel("");
private JLabel[] jl = {name, password, show};
//创建登陆和重置按扭并加入数组
JButton login = new JButton("登陆");
JButton reset = new JButton("重置");
private JButton[] jb = {login, reset};
//创建文本框以及密码框
private JTextField jName = new JTextField();
private JPasswordField jPassword = new JPasswordField();
public LoginTest() {
//设置布局管理器为空布局,这里自己摆放按钮、标签和文本框
jp.setLayout(null);
for (int i = 0; i < 2; i++) {
//设置标签和按扭的位置与大小
jl[i].setBounds(30, 20 + 40 * i, 180, 20);
jb[i].setBounds(30 + 110 * i, 100, 80, 20);
//添加标签和按扭到JPanel容器中
jp.add(jl[i]);
jp.add(jb[i]);
//为2个按钮注册动作事件监听器
jb[i].addActionListener(this);
}
//设置文本框的位置和大小,注意满足美观并足够用户名的长度
jName.setBounds(130, 15, 100, 20);
//添加文本框到JPanel容器中
jp.add(jName);
//为文本框注册动作事件监听器
jName.addActionListener(this);
//设置密码框的位置和大小,注意满足美观和足够密码的长度
jPassword.setBounds(130, 60, 100, 20);
//添加密码框到JPanel容器中
jp.add(jPassword);
//设置密码框中的回显字符,这里设置美元符号
jPassword.setEchoChar('$');
//为密码框注册动作事件监听器
jPassword.addActionListener(this);
//设置用于显示登陆状态的标签大小位置,并将其添加进JPanel容器
jl[2].setBounds(10, 180, 270, 20);
jp.add(jl[2]);
//添加JPanel容器到窗体中
this.add(jp);
//设置窗体的标题、位置、大小、可见性及关闭动作
this.setTitle("登陆窗口");
this.setBounds(200, 200, 270, 250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//实现动作监听器接口中的方法actionPerformed
public void actionPerformed(ActionEvent e) {
//如果事件源为文本框
if (e.getSource() == jName) {
//切换输入焦点到密码框
jPassword.requestFocus();
}
//如果事件源为重置按扭
else if (e.getSource() == jb[1]) {
//清空姓名文本框、密码框和show标签中的所有信息
jl[2].setText("");
jName.setText("");
jPassword.setText("");
//让输入焦点回到文本框
jName.requestFocus();
}
//如果事件源为登陆按钮,则判断登录名和密码是否正确
else {
//判断用户名和密码是否匹配
if (jName.getText().equals("lixiangguo") && String.valueOf(jPassword.getPassword()).equals("19801001")) {
jl[2].setText("登陆成功,欢迎您的到来!");
} else {
jl[2].setText("对不起,您的用户名或密码错误!");
}
}
}
public static void main(String[] args) {
//创建LoginTest窗体对象
new LoginTest();
}
}
怎么用java打开qq
java实现简单QQ登陆界面:
生成界面的java代码
package QQ2014;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class QQ2014 {
//创建登陆界面类
public void showLoginFrame() {
//创建船体对象
JFrame loginFrame = new JFrame();
//设置大小,位置,标题
loginFrame.setSize(300, 200);
loginFrame.setTitle("QQ2014");
loginFrame.setLocationRelativeTo(null);
//创建流式分布对象
FlowLayout layout = new FlowLayout();
loginFrame.setLayout(layout);
//创建账户名,密码和输入框
JLabel user_name = new JLabel("账号:");
JLabel user_password = new JLabel("密码:");
JTextField field_name = new JTextField(20);
JPasswordField field_password = new JPasswordField(20);
//创建登陆,重置按钮
JButton button_reset = new JButton("重置");
JButton button_login = new JButton("登陆");
//设置窗体可见
loginFrame.setVisible(true);
//创建事件监听对象
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("");
}
};
//将文本输入框,按钮,事件监听对象添加
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() {
//创建窗体对象
JFrame indexFrame = new JFrame();
indexFrame.setSize(200, 500);
indexFrame.setTitle("QQ好友列表");
indexFrame.setLocationRelativeTo(null);
//设置流式分布对象
FlowLayout layout = new FlowLayout(FlowLayout.CENTER, 100, 10);
indexFrame.setLayout(layout);
//创建好友按钮
for (int i = 0; i < 10; i++) {
JButton button_friend = new JButton("friend" + i);
//创建动作事件监听对象
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);
}
//设置窗体可见
indexFrame.setVisible(true);
}
public void showChatFrame() {
//创建窗体,大小,位置,标题
JFrame chatFrame = new JFrame();
chatFrame.setSize(400, 400);
chatFrame.setTitle("正在聊天中...");
chatFrame.setLocationRelativeTo(null);
//创建聊天记录,输入域
JTextArea area_input = new JTextArea(10, 30);
JTextArea area_record = new JTextArea(5, 30);
//创建流式分布对象
FlowLayout layout = new FlowLayout(FlowLayout.CENTER, 0, 10);
chatFrame.setLayout(layout);
//创建发送,关闭按扭
JButton button_send = new JButton("发送");
JButton button_close = new JButton("关闭");
//创建动作事件监听对象
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);
}
};
//设置窗体可见
chatFrame.setVisible(true);
//添加按钮,事件监听对象
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);
}
}
java main方法调用
package QQ2014;
public class Test {
public static void main(String[] args) {
QQ2014 qq = new QQ2014();
qq.showLoginFrame();
}
}
用JAVA怎么写QQ
用java是可以写出qq的,只不过用java开发c/s的软件不是java特长的,你要是真的想写,就写着练练手吧,最起码可以巩固java se上的知识。 具体怎么写,给你个大概的思路吧,因为我没办法在这个有限的输入框内把所有的代码写完。
- 先写出qq的简单界面
- 给每个按钮添加监听
- 按钮事件(方法)定义
- 连接网络(socket)
- 测试
- 其他功能添加
- 测试
JAVA版QQ今天还能用吗?
目前来看的话JAVA版的QQ还是可以用的,不过你需要用那种比较老式的塞班系统手机才能下载安装使用。
java手机qq如何安装
qq官网进行下载。首先要确定手机能安装QQ,在浏览器中搜索qq官网进行下载,也可在手机自带的应用商店进行下载。QQ是腾讯公司推出的一款基于互联网的即时通信平台。支持在线聊天、即时传送语音、视频、在线(离线)传送文件等全方位基础通信功能,并且整合移动通信手段,可以通过客户端发送信息给手机用户,进一步为用户构建完整,成熟,多元化的平台。
JAVA与QQ网络通讯实例
准备工作:
- 两个QQ(Q号现在好容易申请)
- eclipse(支持awt swing 可视化开发的版本为佳)
- JDK 以上
- JQL 直接从官方那边下载的不能直接用需要改装 下载地址:
步骤:
- 解压jqgsv beta_src
- 用eclipse导入目录jqgsv beta_src下的项目
- 把jqgsv beta_src目录下的mons codec jar 和 mons logging jar加到项目属性里的Librares中
- 打开 myqq MuiltQQfrendSend 实例代码都在这里 可以直接运行用eclipse运行该类 如果登陆失败 多登陆几次就可以了
//登陆代码
client = new QQClient();
client.setConnectionPoolFactory(new PortGateFactory());
QQUser user = new QQUser(你的Q号, 你Q号的密码);
client.addQQListener(this);
user.setUdp(true);
client.setUser(user);
//client.setLoginServer( );
client.setLoginServer( );
//qq服务器地址有多种 你可以选一个填上去 QQ号必须是整型
//发送消息
client.sendIM(一个好友的QQ号, Util.getBytes(ext));//发送一个普通的消息
//好友的QQ号必须是整型
//获取你的Q号下的所有好友信息
GetFriendListReplyPacket gf = (GetFriendListReplyPacket)e.getSource();
java.util.List friends = (java.util.List) gf.friends;
for(int i = 0; i < friends.size(); i++) {
QQFriend qf = (QQFriend)friends.get(i);
jTextArea.setText(jTextArea.getText() + String.valueOf(qf.qqNum) + "\n");
}
if((int)gf.position != 0) {
client.getFriendList(gf.position);
} else {
jButton.setEnabled(true);
jButton.setEnabled(true);
}
client.getFriendList() //获取好友列表
这个方法需要配合一个变量position和一个事件才能完成 因为QQ是按多次发送好友列表 position = 0表示已到好友列表最后一页 不需要在getFriendList 当得到好友列表会产生一个事件 事件编号为GetFriendListReplyPacket 好友类
事件驱动
jql全部采用事件驱动 实现接口 IQQListener
public void qqEvent(QQEvent e) {//事件监听器
System.out.println(" 事件ID: " + e.type);
/* */ switch(e.type) {
/* MISALIGNED */ /* */ default:
break;
/* MISALIGNED */ /* */ case 1:
/* MISALIGNED */ /* */ processLoginSuccess();//对应的事件处理
/* MISALIGNED */ /* */ break;
/* MISALIGNED */ /* */ case 2:
/* MISALIGNED */ /* */ processLoginFail();
/* MISALIGNED */ /* */ break;
///* MISALIGNED */ /* */ case 3:
///* MISALIGNED */ /* */ processLoginUnknownError();
///* MISALIGNED */ /* */ break;
/* MISALIGNED */ /* */ case 4:
/* MISALIGNED */ /* */ processSendIMSuccess();
/* MISALIGNED */ /* */ break;
/* MISALIGNED */ /* */ case 5:
/* MISALIGNED */ /* */ processChangeStatusSuccess();
}
}
QQ的每次动作都会产生一个事件 每个事件对应一个整数 在类edu.tsinghua.lumaqq.qq.events.QQEvent有具体描述 参考链接