您的位置:首页 > 编程语言 > Java开发

qq登录界面及其实现

2014-04-01 17:04 393 查看
1.刚开始没做的时候觉得这个一定会是很难,熊哥讲这几节课的时候,恰好我的电脑坏了(坏了足足四天),于是那几天就没有快速地去练习

怎么做登录界面。是后来补做的。先看代码

2.程序能够实现了登录界面还有就是事件机制的一些动作。但是一直存在一个问题就是这个判断语句if(jcostr.equals("admin")||jpastr.equals("12345"))

不能改为if(jcostr.equals("admin")&&jpastr.equals("12345"))。

package qqzjq20130705;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;

public class QQlogin {/**
* @ zhoujianquan
*/
public static void main(String[] args) {
//实例化一个login
QQlogin log =new QQlogin();
log.way();
}
//定义way方法
public void way(){
//实例化一个JFram对象
JFrame jf=new JFrame();
jf.setTitle("腾讯QQ2013");
jf.setLocationRelativeTo(null);
jf.setSize(new Dimension(382, 290));
//关闭窗体时下面的红窗口消失
jf.setDefaultCloseOperation(3);
//禁止调整此窗体的大小
jf.setResizable(false);

/******************背景***************/
//实例化一个图标对象
ImageIcon backgroundImage=new ImageIcon("qqimage/background.png");
//实例化一个标签对象,用来显示图标对象
JLabel jlabackground =new JLabel(backgroundImage);
//设置标签的起始位置和大小
jlabackground.setBounds(0, 0, backgroundImage.getIconWidth(), backgroundImage.getIconHeight());

//添加到窗体的LayeredPanel面板的最底层(第二层面板)
jf.getLayeredPane().add(jlabackground,new Integer(Integer.MIN_VALUE));

//获取窗体的第一层面板
JPanel contentPanel=(JPanel)jf.getContentPane();
//设置第一层面板为透明
contentPanel.setOpaque(false);

/***************北面的面板*************/
//定义一个面板
JPanel northPanel=new JPanel();
//设置面板为透明
northPanel.setOpaque(false);
//设置面板的大小为最佳尺寸
northPanel.setPreferredSize(new Dimension(0,120));
//设置面板的布局方式为流式布局,JPanel的默认为流式布局
northPanel.setLayout(new BorderLayout());
//实例化一个标签对象,并且让标签上显示图标
JLabel jla=new JLabel("QQ2013");
//设置字体的大小
jla.setFont(new Font("楷体",Font.BOLD,36));
//将jla对象添加到面板的西边,将面板添加到窗体的北边
northPanel.add(jla, BorderLayout.WEST);
jf.add(northPanel, BorderLayout.NORTH);

/****************西边的面板*********************/
JPanel westPanel = new JPanel();
westPanel.setOpaque(false);//设置面板为透明
//设置面板的布局方式为流式布局,JPanel默认的布局方式是流式布局
westPanel.setLayout(new FlowLayout());

//实例化一个图标(ImageIcon)对象
ImageIcon image = new ImageIcon("qqimage/0.jpg");
//实例化一个JLabel的对象,并且让标签上显示图标
JLabel jlaImage = new JLabel(image);

//将jlaImage对象添加到westPanel对象上
westPanel.add(jlaImage);
//将westPanel添加到jf窗体的西边
jf.add(westPanel,BorderLayout.WEST);

/*************中间的面板**********************/
JPanel centerPanel=new JPanel();
//设置面板为透明
centerPanel.setOpaque(false);
//设置面板的布局方式为流式布局,靠左显示组件,JPanel默认的布局方式是流式布局
centerPanel.setLayout(new FlowLayout(FlowLayout.LEFT,8,5));
//实例化组件
JComboBox jco=new JComboBox();
jco.setPreferredSize(new Dimension(190,24));
//设置jco对象可以编辑
jco.setEditable(true);
//加东西进去
jco.addItem("admin");
//将jco添加到centerPanel上
centerPanel.add(jco);
//添加注册账号标签
JLabel jalReg=new JLabel("注册账号");
//将注册账号标签添加到中间面板上
centerPanel.add(jalReg);
//添加一个密码输入框
JPasswordField jpa=new JPasswordField("密码");
jpa.getPassword();

//设置jpa的大小
jpa.setPreferredSize(new Dimension(190,24));
//将jpa对象添加到面板上
//添加一个标签
centerPanel.add(jpa);
//添加找回密码标签
JLabel jlaPawd=new JLabel("找回密码");
//将找回密码标签添加到面板上
centerPanel.add(jlaPawd);
//添加两个复选框,并设置为透明
JCheckBox jch1= new JCheckBox("记住密码");
jch1.setOpaque(true);
JCheckBox jch2= new JCheckBox("自动登录");
jch2.setOpaque(true);
//将两个复选框添加到面板上
centerPanel.add(jch1);
centerPanel.add(jch2);
//将centerPanel添加到面板窗体的中间
jf.add(centerPanel, BorderLayout.CENTER);

/*******************南边的面板************************/
JPanel southPanel=new JPanel();
//设置面板为透明
southPanel.setOpaque(false);
//设置面板的布局方式为流式布局,面板的默认布局方式为流式布局
southPanel.setLayout(new FlowLayout());
//建一个标签对象
JButton jbuLogin=new JButton("登         录");
//设置按钮的大小
jbuLogin.setPreferredSize(new Dimension(160,30));
//将按钮添加到面板上
southPanel.add(jbuLogin);
//
jbuLogin.setActionCommand("QQlogin");

//将面板添加到窗体的南边
jf.add(southPanel, BorderLayout.SOUTH);

//实例化一个LoginListener对象
LoginListener lis=new LoginListener(jco,jpa);

//给事件源添加动作监听器方法
jbuLogin.addActionListener(lis);

jf.setVisible(true);

}
}

监听器
package qqzjq20130705;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
/**事件处理类,该类实现了ActionListener
* @param zhoujianquan
*/
public class LoginListener implements ActionListener{
//定义私有方法
private JComboBox jco;
private JPasswordField jpa;
public  LoginListener( JComboBox jco,JPasswordField jpa){
this.jco=jco;
this.jpa=jpa;
}
//重写ActionListener中的抽象的方法
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e){
//输出提示
System.out.println("你点击了"+e.getActionCommand()+"按钮");
//获取输入的字符,并且把值赋给str
String jcostr=jco.getUIClassID();
String jpastr= jpa.getText();
//比较字符与定义的字符是否相等
if(jcostr.equals("admin")||jpastr.equals("12345")){
//创建一个窗体
JFrame jf=new JFrame("腾讯QQ消息");
// 设置窗体的大小
jf.setSize(600, 150);
jf.setDefaultCloseOperation(3);
jf.setLocation(200 ,300);
//添加一个标签对象
JLabel jla=new JLabel("账号异常!!");
jla.setForeground(Color.RED);
//设置字体的样式
jla.setFont(new Font("宋体",Font.BOLD,18));
//设置颜色

//设置位置
jla.setLocation(150, 200);
//添加到窗体
jf.add(jla);
jf.setVisible(true);
}else{
JOptionPane.showMessageDialog(null, "输入错误");

}

}

}












描述: qq登录界面
大小: 103.5 KB




描述: 输对密码
大小: 13 KB




描述: 输错误密码
大小: 7.3 KB
查看图片附件
从iteye里面搬家过来的~已经过去很久了,希望对初学者有些用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息