javaqq,java程序代码

发布时间:2023-01-04

本文目录一览:

  1. 用java怎么实现QQ登录界面?
  2. 怎么用java打开qq
  3. 用JAVA怎么写QQ
  4. JAVA版QQ今天还能用吗?
  5. java手机qq如何安装
  6. JAVA与QQ网络通讯实例

用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上的知识。 具体怎么写,给你个大概的思路吧,因为我没办法在这个有限的输入框内把所有的代码写完。

  1. 先写出qq的简单界面
  2. 给每个按钮添加监听
  3. 按钮事件(方法)定义
  4. 连接网络(socket)
  5. 测试
  6. 其他功能添加
  7. 测试

JAVA版QQ今天还能用吗?

目前来看的话JAVA版的QQ还是可以用的,不过你需要用那种比较老式的塞班系统手机才能下载安装使用。

java手机qq如何安装

qq官网进行下载。首先要确定手机能安装QQ,在浏览器中搜索qq官网进行下载,也可在手机自带的应用商店进行下载。QQ是腾讯公司推出的一款基于互联网的即时通信平台。支持在线聊天、即时传送语音、视频、在线(离线)传送文件等全方位基础通信功能,并且整合移动通信手段,可以通过客户端发送信息给手机用户,进一步为用户构建完整,成熟,多元化的平台。

JAVA与QQ网络通讯实例

准备工作:

  • 两个QQ(Q号现在好容易申请)
  • eclipse(支持awt swing 可视化开发的版本为佳)
  • JDK 以上
  • JQL 直接从官方那边下载的不能直接用需要改装 下载地址:

步骤:

  1. 解压jqgsv beta_src
  2. 用eclipse导入目录jqgsv beta_src下的项目
  3. 把jqgsv beta_src目录下的mons codec jar 和 mons logging jar加到项目属性里的Librares中
  4. 打开 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有具体描述 参考链接