java swing 创建一个简单的QQ界面教程
记录自己用javaswing做的第一个简易界面。
LoginAction.java
packagecom.QQUI0819;
importjavax.swing.*;
importjava.awt.event.*;
//首先,编写按钮癿监听器实现类
publicclassLoginActionimplements
ActionListener{
privateintcount=0;
//当前为null,创建后指向界面输入框
privateJTextFieldulName;
privateJTextFieldulpass;
//创建时,输入界面类中癿输入框
publicLoginAction(JTextFieldulName,JTextFieldulpass){
this.ulName=ulName;
this.ulpass=ulpass;
}
//实现接口中癿方法
//当劢作发生时,这个方法执行
publicvoidactionPerformed(ActionEvente){
//点击时,就取得界面输入框癿内容
//此时癿jtf,指向是界面上那个输入框
Stringu=ulName.getText();
Stringp=ulName.getText();
System.out.println("账号输入的是"+u);
System.out.println("密码输入的是"+p)
if(u.equals("csy123")||(p.equals("456"))){
//如果输入正确,弹出新界面
JFramejf=newJFrame();
jf.setTitle("登陆成功");
jf.setSize(300,400);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
}else{
//如果输入正确,弹出新界面
JFramejf=newJFrame();
jf.setTitle("登陆失败");
jf.setSize(300,100);
JButtonb1=newJButton("登陆失败,账号和密码不匹配");
jf.add(b1);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
}
}
}
QQ.java
packagecom.QQUI0819;
importjava.awt.Color;
importjava.awt.Container;
importjava.awt.Cursor;
importjava.awt.Font;
importjava.awt.Image;
importjava.util.ArrayList;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JCheckBox;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPasswordField;
importjavax.swing.JRootPane;
importjavax.swing.JTextField;
publicclassQQextendsJFrame{
//用户名
privateJTextFieldulName;
//密码
privateJPasswordFieldulPasswd;
//小容器
privateJLabelj1;
privateJLabelj2;
privateJLabelj3;
privateJLabelj4;
//小按钮
privateJButtonb1;
//复选框
privateJCheckBoxc1;
privateJCheckBoxc2;
/**
*初始化QQ登录页面
**/
publicQQ(){
//设置登录窗口标题
this.setTitle("QQ登录");
//去掉窗口的装饰(边框)
//采用指定的窗口装饰风格
this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
//窗体组件初始化
init();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置布局为绝对定位
this.setLayout(null);
this.setBounds(0,0,355,265);
//设置窗体的图标
Imageimg0=newImageIcon("E:\\蓝杰培训\\第一周java基础\\basicStudy\\src\\com\\QQUI0819\\QQlogo.jpg").getImage();
this.setIconImage(img0);
//窗体大小不能改变
this.setResizable(false);
//居中显示
this.setLocationRelativeTo(null);
//窗体显示
this.setVisible(true);
}
/**
*窗体组件初始化
**/
publicvoidinit(){
//创建一个容器,其中的图片大小和setBounds
Containercontainer=this.getContentPane();
j1=newJLabel();
//设置背景色
Imageimg1=newImageIcon("E:\\蓝杰培训\\第一周java基础\\basicStudy\\src\\com\\QQUI0819\\QQ.jpg").getImage();
j1.setIcon(newImageIcon(img1));
j1.setBounds(0,0,355,90);
//qq头像设定
j2=newJLabel();
Imageimg2=newImageIcon("E:\\蓝杰培训\\第一周java基础\\basicStudy\\src\\com\\QQUI0819\\QQlogo.jpg").getImage();
j2.setIcon(newImageIcon(img2));
j2.setBounds(20,100,60,63);
//用户名输入框
ulName=newJTextField();
ulName.setBounds(100,100,150,20);
//注册账号
j3=newJLabel("注册账号");
j3.setBounds(260,100,70,20);
//密码输入框
ulPasswd=newJPasswordField();
ulPasswd.setBounds(100,130,150,20);
//找回密码
j4=newJLabel("找回密码");
j4.setBounds(260,130,70,20);
//记住密码
c1=newJCheckBox("记住密码");
c1.setBounds(105,155,80,15);
//自动登陆
c2=newJCheckBox("自动登陆");
c2.setBounds(185,155,80,15);
//登陆按钮
b1=newJButton("登录");
//设置字体和颜色和手形指针
b1.setFont(newFont("宋体",Font.PLAIN,12));
b1.setForeground(Color.black);
b1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
b1.setBounds(20,200,300,20);
//给按钮添加
//所有组件用容器装载
this.add(j1);
this.add(j2);
this.add(j3);
this.add(j4);
this.add(c1);
this.add(c2);
this.add(b1);
//创建监听器对象,幵加给按钮
LoginActionlo=newLoginAction(ulName,ulPasswd);
b1.addActionListener(lo);
container.add(j1);
container.add(ulName);
container.add(ulPasswd);
}
publicstaticvoidmain(String[]args){
newQQ();
}
}
效果图
素材
logo:
QQlogo:
补充知识:创建一个简单的JavaSwing登入窗口
连接数据图就不弄了,要连接数据库的自行添加
为了方便排版,Layout用SpringLayout类型
1.账号框采用JTextField类型
2.密码框采用JPasswordField类型
两者的区别是:
JPasswordField显示的文本是这样的:
文本框JTextField显示的文本是这样的:
3.建立两个JButton,一个是“登入”按钮,另一个是“重置”按钮
4.建立两个Checkbox:一个是记住密码,另一个是隐身登入
5.最后一步加入背景图
代码:
packagel;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Container;
importjava.awt.EventQueue;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.SpringLayout;
importjavax.swing.JLabel;
importjava.awt.Font;
importjavax.swing.JTextField;
importjavax.swing.JPasswordField;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjava.awt.event.FocusAdapter;
importjava.awt.event.FocusEvent;
importjavax.swing.JLayeredPane;
importjava.awt.Checkbox;
publicclassLoginextendsJFrame{
privateJPanelcontentPane;
privateJTextFieldtextField;
privateJPasswordFieldpasswordField;
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
Loginframe=newLogin();
frame.setVisible(true);//窗口可见
frame.setResizable(false);//设置登入窗口不能调整大小
ImageIconimg=newImageIcon("d:/img.jpg");//这是背景图片
JLabelimgLabel=newJLabel(img);//将背景图放在标签里。
frame.getLayeredPane().add(imgLabel,newInteger(Integer.MIN_VALUE));
imgLabel.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
Containercp=frame.getContentPane();
((JPanel)cp).setOpaque(false);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
publicLogin(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,450,300);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
SpringLayoutsl_contentPane=newSpringLayout();
contentPane.setLayout(sl_contentPane);
JLabellblNewLabel=newJLabel("账号:");
lblNewLabel.setFont(newFont("黑体",Font.PLAIN,19));
sl_contentPane.putConstraint(SpringLayout.NORTH,lblNewLabel,34,SpringLayout.NORTH,contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST,lblNewLabel,41,SpringLayout.WEST,contentPane);
contentPane.add(lblNewLabel);
JLabellblNewLabel_1=newJLabel("密码:");
lblNewLabel_1.setFont(newFont("黑体",Font.PLAIN,19));
sl_contentPane.putConstraint(SpringLayout.NORTH,lblNewLabel_1,29,SpringLayout.SOUTH,lblNewLabel);
sl_contentPane.putConstraint(SpringLayout.WEST,lblNewLabel_1,0,SpringLayout.WEST,lblNewLabel);
contentPane.add(lblNewLabel_1);
textField=newJTextField();
textField.addFocusListener(newFocusAdapter(){
@Override
publicvoidfocusLost(FocusEvente){
Stringtemp=textField.getText();
if(temp.equals("")){
textField.setForeground(Color.GRAY);//JTextField提示输入QQ号
textField.setText("请输入QQ号");
}
}
publicvoidfocusGained(FocusEvente){
Stringtemp=textField.getText();
if(temp.equals("请输入QQ号")){
textField.setText("");
}
}
});
sl_contentPane.putConstraint(SpringLayout.NORTH,textField,1,SpringLayout.NORTH,lblNewLabel);
sl_contentPane.putConstraint(SpringLayout.WEST,textField,52,SpringLayout.EAST,lblNewLabel);
sl_contentPane.putConstraint(SpringLayout.EAST,textField,196,SpringLayout.EAST,lblNewLabel);
contentPane.add(textField);
textField.setColumns(10);
passwordField=newJPasswordField();
sl_contentPane.putConstraint(SpringLayout.NORTH,passwordField,26,SpringLayout.SOUTH,textField);
sl_contentPane.putConstraint(SpringLayout.WEST,passwordField,52,SpringLayout.EAST,lblNewLabel_1);
sl_contentPane.putConstraint(SpringLayout.SOUTH,passwordField,48,SpringLayout.SOUTH,textField);
sl_contentPane.putConstraint(SpringLayout.EAST,passwordField,201,SpringLayout.EAST,lblNewLabel_1);
contentPane.add(passwordField);
JButtonbtnNewButton=newJButton("登入");
sl_contentPane.putConstraint(SpringLayout.SOUTH,btnNewButton,65,SpringLayout.SOUTH,passwordField);
contentPane.add(btnNewButton);
JButtonbutton=newJButton("重置");
sl_contentPane.putConstraint(SpringLayout.NORTH,btnNewButton,2,SpringLayout.NORTH,button);
sl_contentPane.putConstraint(SpringLayout.EAST,btnNewButton,-70,SpringLayout.WEST,button);
sl_contentPane.putConstraint(SpringLayout.NORTH,button,32,SpringLayout.SOUTH,passwordField);
sl_contentPane.putConstraint(SpringLayout.WEST,button,242,SpringLayout.WEST,contentPane);
button.setFont(newFont("宋体",Font.PLAIN,19));
contentPane.add(button);
Checkboxcheckbox=newCheckbox("记住密码");
sl_contentPane.putConstraint(SpringLayout.WEST,checkbox,0,SpringLayout.WEST,textField);
sl_contentPane.putConstraint(SpringLayout.SOUTH,checkbox,-6,SpringLayout.NORTH,btnNewButton);
contentPane.add(checkbox);
Checkboxcheckbox_1=newCheckbox("隐身登入");
sl_contentPane.putConstraint(SpringLayout.WEST,checkbox_1,35,SpringLayout.EAST,checkbox);
sl_contentPane.putConstraint(SpringLayout.SOUTH,checkbox_1,0,SpringLayout.SOUTH,checkbox);
contentPane.add(checkbox_1);
}
}
运行截图:
以上这篇javaswing创建一个简单的QQ界面教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。