8:30-9:00 学习打卡
9:30-12:00 写qq项目
14:00-17:00 qq项目写作
1.qq登录界面的java类
设计一个界面,将里面分成三个类,文字JLabel,中间为登录信息,底部为确定按钮。
登录信息为一个JTabbedPane分三个界面,qq账号登录界面,电子邮件界面,手机好登陆界面,目前只写了qq账号界面,后期会补充完整。
代码如下:
//qq登录的界面
package qqc.view;
import qqc.mode.qqlogin;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
public class qqv extends JFrame implements ActionListener{
JTabbedPane jt= new JTabbedPane();
JLabel JL;
JTabbedPane jtp=new JTabbedPane();
JPanel jp1,jp3,jp4,jp5;
JLabel jp1_jb11,getJp1_jb22,jp1_jb21,jp1_jb33,jp1_jb23;
JTextField jp1_jb12;
JPasswordField jp1_jb22;
JCheckBox jp1_jb31,jp1_jb32;
JButton jp1_jb13,jp3_jb1,jp3_jb2,jp3_jb3;
public void inlt(){
//jp1为qq账号组,添加3*3的qq账号操作
jp1=new JPanel(new GridLayout(3,3));
jp1_jb11=new JLabel("QQ号码");
jp1_jb12=new JTextField();
jp1_jb13=new JButton("清除号码");
jp1_jb13.addActionListener(this);
jp1_jb21=new JLabel("QQ密码");
jp1_jb22= new JPasswordField();
jp1_jb23=new JLabel("忘记密码");
jp1_jb33=new JLabel("申请密码保护");
jp1_jb31=new JCheckBox("隐身登录");
jp1_jb32=new JCheckBox("记住密码");
//将qq组件添加进jp
jp1.add(jp1_jb11);
jp1.add(jp1_jb12);
jp1.add(jp1_jb13);
jp1.add(jp1_jb21);
jp1.add(jp1_jb22);
jp1.add(jp1_jb23);
jp1.add(jp1_jb31);
jp1.add(jp1_jb32);
jp1.add(jp1_jb33);
//jp3为登录按钮组
jp3=new JPanel();
jp3_jb1=new JButton("登录");
jp3_jb1.addActionListener(this);
jp3_jb2=new JButton("取消");
jp3_jb3=new JButton("注册向导");
jp3.add(jp3_jb1);
jp3.add(jp3_jb2);
jp3.add(jp3_jb3);
//创建手机号并创建内容(以后弄)
jp4=new JPanel();
//创建电子邮件登录并创建内容(以后弄)
jp5=new JPanel();
JL=new JLabel(new ImageIcon("qqc/view/qq.jpg"));
jtp.add(jp1,"qq号码");
jtp.add(jp4,"手机号码");
jtp.add(jp5,"电子邮件");
this.setSize(400,300);
this.add(JL,BorderLayout.NORTH);
this.add(jtp,BorderLayout.CENTER);
this.add(jp3,BorderLayout.SOUTH);
this.setVisible(true);
}
public static void main(String[] args) {
new qqv().inlt();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==jp3_jb1) {
System.out.println("进入");
// qqlogin q1= null;
// try {
// q1 = new qqlogin(jp1_jb12.getText(),new String(jp1_jb22.getPassword()));
// } catch (IOException ioException) {
// ioException.printStackTrace();
// }
if((jp1_jb22.getPassword()).equals("1")){//上面没完成所有只使用qq密码为1测试代码
System.out.println("登录成功!");
new qqin();
this.setVisible(false);
}
else {
System.out.println("登录失败!");
}
}
else if(e.getSource()==jp1_jb13)
{
jp1_jb12.setText("");
}
}
}
2.qq登录成功界面
会进入一个好友,群,黑名单界面,只完成了默认显示50个好友,20个群,20个陌生人功能,后期将完善各种功能。
代码如下:
//qq信息界面
package qqc.view;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class qqin extends JFrame implements ActionListener, MouseListener {
JPanel jp1,jp2,jp3;
JPanel jp11,jp21,jp31;
JPanel jp12,jp22,jp32;
JButton b11,b12,b13,b21,b22,b23,b31,b32,b33;
CardLayout cl=new CardLayout();
JLabel[] jl1=new JLabel[50];
JLabel[] jl2=new JLabel[20];
JLabel[] jl3=new JLabel[20];
void inlt(){
//第一张卡片
b11=new JButton("好友");
b12=new JButton("群");
b13=new JButton("黑名单");
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
jp1=new JPanel(new BorderLayout());
jp11=new JPanel(new GridLayout(50,1,4,4));
for(int i=0;i<50;i++){
jl1[i]=new JLabel(i+1+" "+":");
jl1[i].addMouseListener(this);
jp11.add(jl1[i]);
}
jp1.add(b11,BorderLayout.NORTH);
jp12=new JPanel(new GridLayout(2,1));
jp12.add(b12);
jp12.add(b13);
jp1.add(new JScrollPane(jp11),BorderLayout.CENTER);
jp1.add(jp12,BorderLayout.SOUTH);
//第二张卡片
b21=new JButton("好友");
b22=new JButton("群");
b23=new JButton("黑名单");
b21.addActionListener(this);
b22.addActionListener(this);
b23.addActionListener(this);
jp2=new JPanel(new BorderLayout());
jp21=new JPanel(new GridLayout(20,1,4,4));
for(int i=0;i<20;i++){
jl2[i]=new JLabel(i+1+":");
jl2[i].addMouseListener(this);
jp21.add(jl2[i]);
}
jp22=new JPanel(new GridLayout(2,1));
jp22.add(b21);
jp22.add(b22);
jp2.add(jp22,BorderLayout.NORTH);
jp2.add(new JScrollPane(jp21),BorderLayout.CENTER);
jp2.add(b23,BorderLayout.SOUTH);
//第三张卡片
b31=new JButton("好友");
b32=new JButton("群");
b33=new JButton("黑名单");
b31.addActionListener(this);
b32.addActionListener(this);
b33.addActionListener(this);
jp3=new JPanel(new BorderLayout());
jp31=new JPanel(new GridLayout(20,1,4,4));
for(int i=0;i<20;i++){
jl3[i]=new JLabel(i+1+":",new ImageIcon(""),JLabel.LEFT);
jl3[i].addMouseListener(this);
jp31.add(jl3[i]);
}
jp32=new JPanel(new GridLayout(3,1));
jp32.add(b31);
jp32.add(b32);
jp32.add(b33);
jp3.add(jp32,BorderLayout.NORTH);
jp3.add(new JScrollPane(jp31),BorderLayout.CENTER);
this.setLayout(cl);
this.add(jp1,"1");
this.add(jp2,"2");
this.add(jp3,"3");
cl.show(this.getContentPane(),"3");
this.setSize(200,400);
this.setVisible(true);
}
public static void main(String[] args) {
new qqin().inlt();
}
@Override
public void actionPerformed(ActionEvent e) {//点击事件
if(e.getSource()==b11||e.getSource()==b21||e.getSource()==b31){
cl.show(this.getContentPane(),"1");
}
else if(e.getSource()==b12||e.getSource()==b22||e.getSource()==b32){
cl.show(this.getContentPane(),"2");
}
else if(e.getSource()==b13||e.getSource()==b23||e.getSource()==b33){
cl.show(this.getContentPane(),"3");
}
}
@Override
public void mouseClicked(MouseEvent e) {//鼠标点击
if(e.getClickCount()==2){
String ss=((JLabel) e.getSource()).getText();
new qqchat(ss);
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {//鼠标移到
JLabel jls=(JLabel) e.getSource();
jls.setForeground(Color.BLUE);
}
@Override
public void mouseExited(MouseEvent e) {//鼠标移出
JLabel jls=(JLabel) e.getSource();
jls.setForeground(Color.BLACK);
}
}
3.qq服务器管理界面
实现了服务器打开,关闭界面。
代码如下:
package qqserver.view;
import qqserver.mode.qqserverm;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
public class qqserverv extends JFrame implements ActionListener {
JButton b1,b2;
JPanel jp=new JPanel();
void inlt(){
setTitle("qq服务器");
b1=new JButton("启动服务器");
b2=new JButton("关闭服务器");
jp.add(b1);
jp.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
add(jp);
setSize(400,300);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new qqserverv().inlt();//此为qq服务器与客服端连接的类
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b1){
System.out.println("服务器已启用");
try {
new qqserverm().inlt();//此为qq服务器与客服端连接的类
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
else if(e.getSource()==b2){
System.out.println("服务器已关闭");
}
}
}