返回本章节

返回作业目录


需求说明:

使用Swing布局管理器和常用控件,实现仿QQ登录界面

实现思路:

创建登录界面的类QQLogin,该类继承父类JFrame,在该类中创建无参数的构造方法,在构造方法中,设置窗体大小为宽355、高265,窗体的布局格式为绝对定位,通过this.setResizable(false)方法设置窗体大小不能改变。

创建初始化方法,在该方法中,创建图10.12中的相关组件,并在该方法中合理设置各组件之间的位置。在构造方法中调用该初始化方法。

素材链接:http://pan-yz.chaoxing.com/share/info/deecb7261a4cc4ea

实现代码:

package com.tencent.qq;

import javax.swing.JFrame;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField; public class QQLogin extends JFrame {
public QQLogin() {
this.setBounds(700, 300, 600, 454);
this.setTitle("QQ登录界面");
this.setLayout(null);
this.setResizable(false); Icon icon1 = new ImageIcon("img/logo.jpg");
JLabel img1 = new JLabel(icon1);
img1.setBounds(0, 0, 600, 154); Icon icon2 = new ImageIcon("img/icon.jpg");
JLabel img2 = new JLabel(icon2);
img2.setBounds(80, 170, 110, 100); JTextField userTest = new JTextField();
userTest.setBounds(200, 185, 250, 30);
JPasswordField pawTest = new JPasswordField();
pawTest.setBounds(200, 230, 250, 30); JLabel zczh = new JLabel("注册账号");
zczh.setBounds(460, 100, 200, 200);
JLabel zhmm = new JLabel("找回密码");
zhmm.setBounds(460, 145, 200, 200); JComboBox ComboBox = new JComboBox();
ComboBox.addItem("在线");
ComboBox.addItem("离开");
ComboBox.addItem("忙碌");
ComboBox.addItem("隐身");
ComboBox.setBounds(95, 280, 85, 25); JCheckBox jzmm = new JCheckBox("记住密码");
jzmm.setBounds(220, 270, 100, 50);
JCheckBox zddl = new JCheckBox("自动登录");
zddl.setBounds(350, 270, 100, 50); JButton dzh = new JButton("多账号");
dzh.setBounds(50, 340, 105, 30);
JButton sz = new JButton("设置");
sz.setBounds(180, 340, 105, 30);
JButton dl = new JButton("登录");
dl.setBounds(420, 340, 105, 30); this.add(img1);
this.add(img2);
this.add(userTest);
this.add(pawTest);
this.add(zczh);
this.add(zhmm);
this.add(ComboBox);
this.add(jzmm);
this.add(zddl);
this.add(dzh);
this.add(sz);
this.add(dl); } public static void main(String[] args) {
QQLogin login = new QQLogin();
login.setVisible(true);
}
}

编写Java程序,使用Swing布局管理器和常用控件,实现仿QQ登录界面的更多相关文章

  1. 编写Java程序,使用Swing布局管理器与常用控件,实现用户登录界面

    返回本章节 返回作业目录 需求说明: 使用Swing布局管理器与常用控件,实现用户登录界面 实现思路: 创建用户登录界面的类LoginFrame,在该类中创建无参数的构造方法,在构造方法中,设置窗体大 ...

  2. Swing——布局管理器

    前言 在编写图形界面时,总是需要考虑的就是组件放在哪里,组件怎么大才合适.在Swing中就有现成的布局管理器帮我们做这些事情,我们不必写代码去一一安排.下面将介绍什么是布局管理器.Swing中常用布局 ...

  3. Java Swing布局管理器GridBagLayout的使用示例 [转]

    GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...

  4. 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

    5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...

  5. Swing布局管理器介绍

    创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...

  6. Swing布局管理器

    在Swing中使用的所有布局管理器都可以实现LayoutManager接口.Swing中有五种常见的布局管理器分别为FlowLayout.BorderLayout.GridLayout.CardLay ...

  7. JAVA简单的网格布局管理器--JAVA基础

    网格布局管理器: GridLayoutDemo.java: import java.awt.GridLayout;import javax.swing.JButton;import javax.swi ...

  8. 【java】浅析java组件中的布局管理器

    这篇博文笔者介绍一下java组件中,常用的布局管理器.java组件中的布局方式有好几十种,所有的这些布局管理器都实现了java.awt.LayoutManager接口.接下来笔者介绍一下常用的5种布局 ...

  9. java图形用户界面边界布局管理器

    总结:不同方向的组件,所用的板是不同的: package com.moc; //用布局写一个界面 ///运用边界布局 //2个按钮在北,2个按钮在南 //中央一个大按钮 //将同一方向的组件封装后布局 ...

随机推荐

  1. 转 关于HttpClient,HttpURLConnection,OkHttp的用法

    转自:https://www.cnblogs.com/zp-uestc/p/10371012.html 1 HttpClient入门实例 1.1发送get请求 1 2 3 4 5 6 7 8 9 10 ...

  2. MyBatis中sql实现时间查询的方法

    <if test="startTime != null and startTime !=''"> AND lTime >= #{startTime} </i ...

  3. 最小化安装centos ubuntu基础命令

    # yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \ pcre-devel openssl openssl-devel zip ...

  4. jQuery对象进行方法扩展

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>01 ...

  5. 『学了就忘』Linux服务管理 — 76、RPM包安装的服务管理

    目录 1.独立服务的启动管理 2.独立服务的自启动管理 方式一: 方式二:(推荐) 方式三: 3.验证 1.独立服务的启动管理 (1)使用/etc/init.d/目录中的启动脚本启动服务(推荐) [r ...

  6. 20 个 .NET 6 新增的 API

    DateOnly & TimeOnly .NET 6 引入了两种期待已久的类型 - DateOnly 和 TimeOnly, 它们分别代表DateTime的日期和时间部分. DateOnly ...

  7. MySQL数据库如何实现增量备份

    1 .通过SHOW VARIABLES LIKE '%log_bin%';查看数据库是否开启增量备份log_bin=ON则为开启log_bin=OFF则为关闭 2 .修改mysql配置文件mysql. ...

  8. UCI数据库_鸢尾花数据集的读取方式

    1. 读取数据的第一种方式 [attrib1,attrib2,attrib3,attrb4,class] = textread('iris.data','%f%f%f%f%s','delimiter' ...

  9. wustctf2020_number_game

    第一次碰到这种类型的题目,特地来记录一下 例行检查就不放了 int的取值范围[-2147482648,2147483647] 网上的解释: 绕过第9行的if即可获取shell,v1是无符号整型,我们输 ...

  10. CF979A Pizza, Pizza, Pizza!!! 题解

    Content 小 S 想把一块披萨切成大小.形状都相同的 \((n+1)\) 块(\(n\) 块分给 TA 的 \(n\) 个朋友,还有一块留给自己),试问最小需要切多少块. 数据范围:\(0\le ...