记录自己用java swing做的第一个简易界面。

LoginAction.java

package com.QQUI0819;

import javax.swing.*;

import java.awt.event.*;

//首先,编写按钮癿监听器实现类

public class LoginAction implements

ActionListener {

private int count=0;

//当前为null,创建后指向界面输入框

private JTextField ulName;

private JTextField ulpass;

//创建时,输入界面类中癿输入框

public LoginAction(JTextField ulName,JTextField ulpass ){

this.ulName=ulName;

this.ulpass=ulpass;

}

//实现接口中癿方法

//当劢作发生时,这个方法执行

public void actionPerformed(ActionEvent e) {

//点击时,就取得界面输入框癿内容

//此时癿jtf,指向是界面上那个输入框

String u=ulName.getText();

String p=ulName.getText();

System.out.println("账号输入的是 "+u);

System.out.println("密码输入的是 "+p)

if(u.equals("csy123") ||(p.equals("456"))){

//如果输入正确,弹出新界面

JFrame jf=new JFrame();

jf.setTitle("登陆成功");

jf.setSize(300,400);

jf.setLocationRelativeTo(null);

jf.setVisible(true);

} else {

//如果输入正确,弹出新界面

JFrame jf=new JFrame();

jf.setTitle("登陆失败");

jf.setSize(300,100);

JButton b1 = new JButton("登陆失败,账号和密码不匹配");

jf.add(b1);

jf.setLocationRelativeTo(null);

jf.setVisible(true);

}

}

}

QQ.java

package com.QQUI0819;

import java.awt.Color;

import java.awt.Container;

import java.awt.Cursor;

import java.awt.Font;

import java.awt.Image;

import java.util.ArrayList;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPasswordField;

import javax.swing.JRootPane;

import javax.swing.JTextField;

public class QQ extends JFrame{

//用户名

private JTextField ulName;

//密码

private JPasswordField ulPasswd;

//小容器

private JLabel j1;

private JLabel j2;

private JLabel j3;

private JLabel j4;

//小按钮

private JButton b1;

//复选框

private JCheckBox c1;

private JCheckBox c2;

/**

* 初始化QQ登录页面

* */

public QQ(){

//设置登录窗口标题

this.setTitle("QQ登录");

//去掉窗口的装饰(边框)

//采用指定的窗口装饰风格

this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);

//窗体组件初始化

init();

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//设置布局为绝对定位

this.setLayout(null);

this.setBounds(0, 0, 355, 265);

//设置窗体的图标

Image img0 = new ImageIcon("E:\\蓝杰培训\\第一周java基础\\basicStudy\\src\\com\\QQUI0819\\QQlogo.jpg").getImage();

this.setIconImage(img0);

//窗体大小不能改变

this.setResizable(false);

//居中显示

this.setLocationRelativeTo(null);

//窗体显示

this.setVisible(true);

}

/**

* 窗体组件初始化

* */

public void init(){

//创建一个容器,其中的图片大小和setBounds

Container container = this.getContentPane();

j1 = new JLabel();

//设置背景色

Image img1 = new ImageIcon("E:\\蓝杰培训\\第一周java基础\\basicStudy\\src\\com\\QQUI0819\\QQ.jpg").getImage();

j1.setIcon(new ImageIcon(img1));

j1.setBounds(0, 0, 355, 90);

//qq头像设定

j2 = new JLabel();

Image img2 = new ImageIcon("E:\\蓝杰培训\\第一周java基础\\basicStudy\\src\\com\\QQUI0819\\QQlogo.jpg").getImage();

j2.setIcon(new ImageIcon(img2));

j2.setBounds(20, 100, 60, 63);

//用户名输入框

ulName = new JTextField();

ulName.setBounds(100, 100, 150, 20);

//注册账号

j3 = new JLabel("注册账号");

j3.setBounds(260, 100, 70, 20);

//密码输入框

ulPasswd = new JPasswordField();

ulPasswd.setBounds(100, 130, 150, 20);

//找回密码

j4= new JLabel("找回密码");

j4.setBounds(260, 130, 70, 20);

//记住密码

c1 = new JCheckBox("记住密码");

c1.setBounds(105, 155, 80, 15);

//自动登陆

c2 = new JCheckBox("自动登陆");

c2.setBounds(185, 155, 80, 15);

//登陆按钮

b1 = new JButton("登录");

//设置字体和颜色和手形指针

b1.setFont(new Font("宋体", 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);

//创建监听器对象,幵加给按钮

LoginAction lo=new LoginAction(ulName,ulPasswd);

b1.addActionListener(lo);

container.add(j1);

container.add(ulName);

container.add(ulPasswd);

}

public static void main(String[] args) {

new QQ();

}

}

效果图

素材

logo:

QQ logo:

补充知识:创建一个简单的Java Swing登入窗口

连接数据图就不弄了,要连接数据库的自行添加

为了方便排版,Layout用SpringLayout类型

1.账号框采用JTextField 类型

2.密码框采用JPasswordField类型

两者的区别是:

JPasswordField显示的文本是这样的:

文本框JTextField显示的文本是这样的:

3.建立两个JButton,一个是“登入”按钮,另一个是“重置”按钮

4.建立两个Checkbox:一个是记住密码,另一个是隐身登入

5.最后一步加入背景图

代码:

package l;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.SpringLayout;

import javax.swing.JLabel;

import java.awt.Font;

import javax.swing.JTextField;

import javax.swing.JPasswordField;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import java.awt.event.FocusAdapter;

import java.awt.event.FocusEvent;

import javax.swing.JLayeredPane;

import java.awt.Checkbox;

public class Login extends JFrame {

private JPanel contentPane;

private JTextField textField;

private JPasswordField passwordField;

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Login frame = new Login();

frame.setVisible(true); //窗口可见

frame.setResizable(false); //设置登入窗口不能调整大小

ImageIcon img = new ImageIcon("d:/img.jpg");//这是背景图片

JLabel imgLabel = new JLabel(img);//将背景图放在标签里。

frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));

imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());

Container cp=frame.getContentPane();

((JPanel)cp).setOpaque(false);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

public Login() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

SpringLayout sl_contentPane = new SpringLayout();

contentPane.setLayout(sl_contentPane);

JLabel lblNewLabel = new JLabel("账号:");

lblNewLabel.setFont(new Font("黑体", 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);

JLabel lblNewLabel_1 = new JLabel("密码:");

lblNewLabel_1.setFont(new Font("黑体", 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 = new JTextField();

textField.addFocusListener(new FocusAdapter() {

@Override

public void focusLost(FocusEvent e) {

String temp=textField.getText();

if(temp.equals("")) {

textField.setForeground(Color.GRAY); //JTextField提示输入QQ号

textField.setText("请输入QQ号");

}

}

public void focusGained(FocusEvent e) {

String temp=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 = new JPasswordField();

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);

JButton btnNewButton = new JButton("登入");

sl_contentPane.putConstraint(SpringLayout.SOUTH, btnNewButton, 65, SpringLayout.SOUTH, passwordField);

contentPane.add(btnNewButton);

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

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(new Font("宋体", Font.PLAIN, 19));

contentPane.add(button);

Checkbox checkbox = new Checkbox("记住密码");

sl_contentPane.putConstraint(SpringLayout.WEST, checkbox, 0, SpringLayout.WEST, textField);

sl_contentPane.putConstraint(SpringLayout.SOUTH, checkbox, -6, SpringLayout.NORTH, btnNewButton);

contentPane.add(checkbox);

Checkbox checkbox_1 = new Checkbox("隐身登入");

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);

}

}

运行截图:

以上这篇java swing 创建一个简单的QQ界面教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

java qq ui界面_java swing 创建一个简单的QQ界面教程相关推荐

  1. java swing 创建一个简单的QQ界面

    记录自己用java swing做的第一个简易界面. LoginAction.java package com.QQUI0819;import javax.swing.*; import java.aw ...

  2. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇-使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  3. JAVA程序设计(自主模式)-创建一个简单的表示矩形的Rectangle类

    创建一个简单的表示矩形的Rectangle类,满足以下条件: 1.定义两个成员变量height和width,表示矩形的长和宽,类型为整型 2.定义一个getArea方法,返回矩形的面积 3.定义一个g ...

  4. 在 Android Studio 中创建一个简单的 QQ 登录界面

    一,创建一个新的 Android Studio 项目 打开 Android Studio,选择 "Start a new Android Studio project",然后填写应 ...

  5. java定义三角类_Java先创建一个point类然后定义trianglete类,在trianglete类中定义三个point的实体表示三角形的三个点。...

    Java先创建一个point类然后定义trianglete类,在trianglete类中定义三个point的实体表示三角形的三个点. 关注:197  答案:1  mip版 解决时间 2021-01-3 ...

  6. java如何做网页_java怎么做一个简单网页?网页包括什么?

    学了java程序之后,大家就可以将这些运用到生活中去,比如做一个简单的网页.正好也可以检测自己学了怎么样,那么接下来,我们就来给大家讲解一下这方面的内容. 用Java语言编写实现一个简单的WEB浏览器 ...

  7. java 应用分模块_在Java 11中创建一个简单的模块化应用教程

    模块化编程使人们能够将代码组织成独立的,有凝聚力的模块,这些模块可以组合在一起以实现所需的功能. 本文摘自Nick Samoylov和Mohamed Sanaulla撰写的一本名为Java 11 Co ...

  8. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)

    一.实现效果             二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 1 // 2 // YYQQGroupModel.h 3 // 02-QQ好友列表(基本数据 ...

  9. H5创建一个简单的qq注册页面

    该图就是最终要完成的效果,简单分析一下改图的整体结构,以及需要用到的标签及属性.这里我是直接创建一个表单,然后在表单中创建一个十行一列的表格.以下为最终效果的代码 <!DOCTYPE html& ...

最新文章

  1. 外省籍进城务工人员随迁子女在浙江就地升学政策出台
  2. 百思不得其解,一个钻石玩家可以短时间上王者?因为猎游?
  3. Flume 1.7 源码分析(一)源码编译
  4. javac编译多个java文件以及-cp、-classpath、-sourcepath
  5. java nodefilter类,Java Servlet Filter过滤器概述
  6. 博客园自定义主题样式
  7. java+txt+词语+次数_Java练习2--读取txt文件统计考勤次数并写入一个txt文件中
  8. mysql error innodb_MySQL无法启动: InnoDB Error:unable to create temporary file
  9. EventThread线程对VSync的分发
  10. XML配置文件的智能感知(IntelliSense)功能
  11. c# word文档与二进制数据的相互转换
  12. 书荒季 | “超长待机”的假期,收好这份信息安全书单!
  13. 从T7模型中取训练参数
  14. VirtualBox增强功能无法安装
  15. JavaScript Object Notation对象标记法
  16. 2020年5个最佳免费WordPress托管提供商
  17. android qq很多压缩包,微信QQ总是占用手机大量内存?这次腾讯推出官方版清理工具了...
  18. 【网易笔试】小易最近在数学课上学习到了集合的概念
  19. 多精度里FNT和SSA的点滴
  20. 盘点linux现状未来发展,盘点Linux现状及未来发展

热门文章

  1. 27岁了,老大不小了,转载一篇文章作年度回顾
  2. AIDevOps离我们有多远?
  3. [Git] git pull冲突和git stash pop冲突解决
  4. 能源管理系统(Synchro EMS)
  5. 如何急救你那还没改完BUG的同事?(防猝死,转发给你身边的同事,逼他学会)
  6. centos7装机和初步运维
  7. 揭密让程序猿谈外包而色变的原因
  8. 为什么数字化转型必须是一把手工程?
  9. springboot+服装销售管理系统的设计与实现 毕业设计-附源码221801
  10. matlab 谐波注入,一种基于谐波注入的新能源汽车永磁同步电机噪声控制方法与流程...