「javaqq实例」JAVA版

博主:adminadmin 2022-12-02 01:39:06 71

本篇文章给大家谈谈javaqq实例,以及JAVA版对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用java怎么实现QQ登录界面?

用java做QQ登录界面的写法如下:

package ch10;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

1、//定义该类继承自JFrame,实现ActionListener接口

public class LoginTest extends JFrame implements ActionListener

{

2、//创建JPanel对象

private JPanel jp=new JPanel();

3、//创建3个标并加入数组

JLabel name = new JLabel("请输入用户名");

JLabel password = new JLabel("请输入密码");

JLabel show = new JLabel("");

private JLabel[] jl={name,password,show};

4、//创建登陆和重置按扭并加入数组

JButton login = new JButton("登陆");

JButton reset = new JButton("重置");

private JButton[] jb={login,reset};

5、//创建文本框以及密码框

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个按钮注册动作事件监听器

jb[i].addActionListener(this);

}

9、//设置文本框的位置和大小,注意满足美观并足够用户名的长度

jName.setBounds(130,15,100,20);

10、//添加文本框到JPanel容器中

jp.add(jName);

11、//为文本框注册动作事件监听器

jName.addActionListener(this);

12、//设置密码框的位置和大小,注意满足美观和足够密码的长度

jPassword.setBounds(130,60,100,20);

13、//添加密码框到JPanel容器中

jp.add(jPassword);

14、//设置密码框中的回显字符,这里设置美元符号

jPassword.setEchoChar('$');

15、//为密码框注册动作事件监听器

jPassword.addActionListener(this);

16、//设置用于显示登陆状态的标签大小位置,并将其添加进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、//实现动作监听器接口中的方法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、//创建LoginTest窗体对象

new LoginTest();

}

}

怎么用java打开qq

java实现简单QQ登陆界面:

1.生成界面的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;i10;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);

}

}

复制代码

2.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】测试

【5】其他功能添加

【6】测试

Java做一个多线程类似于QQ的聊天程序。

//时间关系,粗略的做了一下,一个模拟UDP协议的测试,图标,IP,以及端口都可以设成

//发送者端的电脑参数!

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GridLayout;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.io.IOException;

import java.io.Serializable;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class Day03_A extends JFrame implements Serializable {

private static final long serialVersionUID = 57L;

private JTextArea txtRece, txtSend;// 接受与发送文本域!

private JPanel jp1, jp2;// 面板!

private JScrollPane jsp;

private JLabel jab;// 标签

private JButton jb;// 按钮

private JMenuBar jmb;// 窗体状态栏

private JMenuItem a=null,b=null;

private DatagramSocket dsend = null, drece;

private DatagramPacket dp1, dp2;

private byte[] by1, by2;

private String[][][] menArr= {{{"语言"},{"中文","英文"}}, {{"字体"},{"隶书","彩云",}},{{"辅助"},{"放大","缩小"}}, {{"功能"},{"计算","闹钟"}}};

Day03_A() {

by2 = new byte[1024];

this.setTitle("山寨QQ测试");// 窗体标题

this.setBounds(300, 300, 400, 500);// 位置及大小!

this.setResizable(false);

this.setIconImage(new ImageIcon("E:/Java_Worker/Day_41学习_Gui/src/com/djw/swing01/qq.png").getImage());

this.setLayout(new GridLayout(2, 1));// 网格模式2行1列

init();

this.setJMenuBar(jmb);

this.setVisible(true);

}

private void init() {

jmb = new JMenuBar();

for(int i=0;imenArr.length;i++) {

for(int j=0;jmenArr[i].length;j++) {

for(int x=0;xmenArr[i][j].length;x++) {

if(j==0) {

a=new JMenu(menArr[i][j][x]);

}else {

b=new JMenuItem(menArr[i][j][x]);

a.add(b);

}

}

jmb.add(a);

}

}

jp1 = new JPanel();

jp1.setLayout(new BorderLayout());

txtRece = new JTextArea();

jsp = new JScrollPane(txtRece);

jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

this.add(jsp);

jp2 = new JPanel();// 面板

jp2.setBackground(new Color(107, 197, 127));

jp2.setLayout(new BorderLayout());

txtSend = new JTextArea();

jab = new JLabel();

jab.setText("[ALT+S]/[回车+CTRL]或者[点击发送按钮]:发送信息");

jab.setHorizontalAlignment(JLabel.CENTER);// 标签文本居中

jb = new JButton("发送");

jp2.add(jab, BorderLayout.NORTH);// 指定到面板北面

jp2.add(txtSend, BorderLayout.CENTER);// 文本放中间

jp2.add(jb, BorderLayout.SOUTH);

this.add(jp2);

myeve();

}

private void myeve() {

this.setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗体可关闭

try {

dsend = new DatagramSocket();// 发送端套接字

drece = new DatagramSocket(10008);

} catch (SocketException e) {

e.printStackTrace();

}

re();// 启动无限循环侦听!

txtSend.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent k) {

if (k.isControlDown()  k.getKeyCode() == KeyEvent.VK_ENTER) {

se();

}

if (k.isAltDown()  k.getKeyCode() == KeyEvent.VK_S) {

se();

}

}

});

jb.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent arg0) {

se();

txtSend.requestFocus();

}

});

}

private void se() {

try {

by1 = txtSend.getText().getBytes();

dp1 = new DatagramPacket(by1, by1.length, InetAddress.getByName("192.168.2.4"), 10008);

dsend.send(dp1);// 推送数据

txtSend.setText(null);

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

private void re() {

new Thread() {

public void run() {

while (true) {

try {

String time = new SimpleDateFormat("MM-dd/HH:mm").format(new Date());

dp2 = new DatagramPacket(by2, by2.length);

drece.receive(dp2);

String ip = dp2.getAddress().getHostAddress();

txtRece.append("用户IP:" + ip + "  时间:");

txtRece.append(time + ": " + System.getProperty("line.separator"));

txtRece.append(new String(by2, 0, dp2.getLength()) + System.getProperty("line.separator"));

txtRece.setCaretPosition(txtRece.getText().length());

} catch (IOException e) {

e.printStackTrace();

}

}

}

}.start();

}

public static void main(String[] args) {

new Day03_A();

}

}

用Java编写类似QQ对话框程序

给你个Socket/ServerSocket写的小例子,看看能不能帮到你哦:

先运行ServerGUI,启动服务器端,再运行ClientGUI,双方就可以发送字符串了...

ServerGUI类:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.IOException;

@SuppressWarnings("serial")

public class ServerGUI extends JFrame {

private JTextArea jta, jtaInput;

private JPanel jtaAreaPane;

private JPanel j;

private JButton buttonSubmit, buttonExit;

private String stringGet = null;

private OurServer os = null;

public ServerGUI(String s) {

super(s);

jtaAreaPane = new JPanel();

jtaAreaPane.setLayout(new GridLayout(2, 1));

jta = new JTextArea(7, 35);

jta.setLineWrap(true);

jta.setBackground(new Color(169, 255, 128));

JScrollPane jsp = new JScrollPane(jta);

jtaInput = new JTextArea(7, 35);

jtaInput.setLineWrap(true);

jtaInput.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == 10) {

String s = jtaInput.getText();

jtaInput.setText(null); // 输入框重新设为空

jta.append("\n" + "你发送了:" + s.trim());

stringGet = s;

if (stringGet != null) {

System.out.println("stringGet:" + stringGet);

try {

os.getOsw().write(stringGet + "\n");

os.getOsw().flush();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

}

});

jtaInput.setBackground(new Color(133, 168, 250));

JScrollPane jspIn = new JScrollPane(jtaInput);

jtaAreaPane.add(jsp);

jtaAreaPane.add(jspIn);

j = new JPanel();

buttonSubmit = new JButton("提交");

buttonSubmit.addActionListener(new SetButtonSubmit());

buttonExit = new JButton("关闭");

buttonExit.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

});

j.add(buttonSubmit);

j.add(buttonExit);

setLayout(new BorderLayout());

add(jtaAreaPane, BorderLayout.CENTER);

add(j, BorderLayout.SOUTH);

setSize(new Dimension(400, 500));

setLocation(500, 300);

pack();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setResizable(false);

setVisible(true);

new Thread(new ServerOurRead()).start();

os = new OurServer();

}

public String GetString() {

return stringGet;

}

public void setStringGet(String s) {

this.stringGet = s;

}

class SetButtonSubmit implements ActionListener {

@SuppressWarnings("static-access")

public void actionPerformed(ActionEvent e) {

String s = jtaInput.getText();

jtaInput.setText(null);

jta.append("\n" + "你发送了:" + s.trim());// jta.setText("你发送了:"+oc.s);

stringGet = s;

if (stringGet != null) {

System.out.println("stringGet:" + stringGet);

try {

os.getOsw().write(stringGet + "\n");

os.getOsw().flush();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

}

// 接收来自客户端的线程

class ServerOurRead implements Runnable {

public void run() {

while (true) {

try {

jta.append("\n来自客户端:" + os.getBr().readLine());

} catch (Exception e1) {

e1.printStackTrace();

}

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

public static void main(String args[]) {

new ServerGUI("服务器对话框");

}

}

OurServer类:

import java.util.*;

import java.io.*;

import java.net.*;

public class OurServer {

private ServerSocket serverSocket = null;

private OutputStream os = null;

private InputStream is = null;

private OutputStreamWriter osw = null;

private InputStreamReader isr = null;

private BufferedReader br = null;

private ArrayListSocket socketList = null;

private Scanner console = new Scanner(System.in);

public OurServer() {

try {

serverSocket = new ServerSocket(22222);

System.out.println("serverSocket is waiting...");

Socket soc = serverSocket.accept();

os = soc.getOutputStream();

is = soc.getInputStream();

osw = new OutputStreamWriter(os);

isr = new InputStreamReader(is);

br = new BufferedReader(isr);

} catch (IOException e) {

e.printStackTrace();

}

}

// 从客户端读信息的线程

public static void main(String args[]) {

}

public BufferedReader getBr() {

return br;

}

public void setBr(BufferedReader br) {

this.br = br;

}

public OutputStreamWriter getOsw() {

return osw;

}

public void setOsw(OutputStreamWriter osw) {

this.osw = osw;

}

}

ClientGUI类:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.IOException;

@SuppressWarnings("serial")

public class ClientGUI extends JFrame {

private JTextArea jta, jtaInput;

private JPanel jtaAreaPanel;

private JPanel j;

private JButton buttonSubmit, buttonExit;

private String stringGet = null;

private OurClient oc = null;

public ClientGUI(String s) {

super(s);

jtaAreaPanel = new JPanel();

jtaAreaPanel.setLayout(new GridLayout(2, 1));

jta = new JTextArea(7, 35);

jta.setLineWrap(true);

jta.setBackground(new Color(169, 255, 128));

JScrollPane jsp = new JScrollPane(jta);

jtaInput = new JTextArea(7, 35);

jtaInput.setLineWrap(true);

jtaInput.setBackground(new Color(133, 168, 250));

jtaInput.addKeyListener(new KeyAdapter() {

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == 10) {

String s = jtaInput.getText();

jtaInput.setText(null); // 输入框重新设为空

jta.append("\n" + "你发送了:" + s.trim());

stringGet = s;

if (stringGet != null) {

System.out.println("stringGet:" + stringGet);

try {

oc.getOsw().write(stringGet + "\n");

oc.getOsw().flush();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

}

});

JScrollPane jspIn = new JScrollPane(jtaInput);

jtaAreaPanel.add(jsp);

jtaAreaPanel.add(jspIn);

j = new JPanel();

buttonSubmit = new JButton("提交");

buttonSubmit.addActionListener(new SetButtonSubmit());

buttonExit = new JButton("关闭");

buttonExit.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

});

j.add(buttonSubmit);

j.add(buttonExit);

setLayout(new BorderLayout());

add(jtaAreaPanel, BorderLayout.CENTER);

add(j, BorderLayout.SOUTH);

setSize(new Dimension(400, 500));

setLocation(500, 300);

pack();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setResizable(false);

setVisible(true);

// 启动读取服务端信息线程

new Thread(new ServerOurRead()).start();

oc = new OurClient();

}

public String GetString() {

return stringGet;

}

public void setStringGet(String s) {

this.stringGet = s;

}

class SetButtonSubmit implements ActionListener {

@SuppressWarnings("static-access")

public void actionPerformed(ActionEvent e) {

String s = jtaInput.getText();

jtaInput.setText(null); // 输入框重新设为空

jta.append("\n" + "你发送了:" + s.trim());

stringGet = s;

if (stringGet != null) {

System.out.println("stringGet:" + stringGet);

try {

oc.getOsw().write(stringGet + "\n");

oc.getOsw().flush();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

}

// 接收来自客户端的线程

class ServerOurRead implements Runnable {

public void run() {

while (true) {

try {

// oc.getBr().readLine()此方法一直在读,直到流中有数据

jta.append("\n来自客户端:" + oc.getBr().readLine());// readLine()

} catch (Exception e1) {

}

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

public static void main(String args[]) {

new ClientGUI("对话框");

}

}

OurClient 类:

import java.io.*;

import java.net.*;

import java.util.*;

public class OurClient {

private Socket socket = null;

private OutputStream os = null;

private InputStream is = null;

private OutputStreamWriter osw = null;

private InputStreamReader isr = null;

private BufferedReader br = null;

private Scanner console = null;

private static String s = null;

private static String In = null;

public OurClient() {

console = new Scanner(System.in);

try {

socket = new Socket("127.0.0.1", 22222);

os = socket.getOutputStream();

is = socket.getInputStream();

osw = new OutputStreamWriter(os);

isr = new InputStreamReader(is);

br = new BufferedReader(isr);

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

// 从服务端读信息的线程

public BufferedReader getBr() {

return br;

}

public void setBr(BufferedReader br) {

this.br = br;

}

public OutputStreamWriter getOsw() {

return osw;

}

public void setOsw(OutputStreamWriter osw) {

this.osw = osw;

}

public static void main(String args[]) {

}

}

关于javaqq实例和JAVA版的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-02,除非注明,否则均为首码项目网原创文章,转载请注明出处。