Java二级考试必考题——gui语法

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

自己考试当时写的笔记,想着还是分享出来。之前考试的时候写的,值得一提的是考试所用的 IDE 非常弱智,我们考场的老师都不会用,最后当 txt 写的代码,都没跑着试一下……可能是因为 Java 考的人太少的原因?

本篇博客侧重于xJava 的 GUI 语法,这个早就被淘汰的技术,不知为什么成为了 Java 二级考试的压轴题

推荐题库java.code2ji.cn


📚 Java GUI 基础语法全解析

在 Java 中,GUI(图形用户界面)开发主要依靠两套工具包:

工具包全称特点二级考试出场率
AWTAbstract Window Toolkit早期的 GUI 工具包,依赖本地系统外观,功能较少几乎不单独考,Swing 底层用它
Swing-纯 Java 实现的 GUI,跨平台外观一致,功能丰富100% 压轴题

在考试中,Swing 是绝对主角,几乎所有窗口、按钮、输入框都来自它。


1. 顶层窗口 —— JFrame

JFrame 是 Swing 提供的窗口类,你的所有 GUI 组件都要放在它里面。

常用方法表:

方法作用示例
setTitle(String)设置窗口标题setTitle("QQ2025正式版")
setSize(int, int)设置窗口宽高setSize(400, 300)
setBounds(x, y, w, h)设置位置和大小setBounds(100, 100, 400, 300)
setDefaultCloseOperation(int)设置关闭行为EXIT_ON_CLOSE 表示直接退出
setLocationRelativeTo(null)窗口居中setLocationRelativeTo(null)
setResizable(boolean)是否允许调整大小setResizable(false)
setVisible(boolean)显示窗口setVisible(true)

应试提示:二级考试喜欢 extends JFrame 的写法,这样直接在类中操作窗口本身。


2. 布局管理器

Swing 默认会用布局管理器(如 BorderLayout)自动安排组件位置。但考试里常用绝对定位

this.setLayout(null); // 不使用布局管理器
组件.setBounds(x, y, width, height);

常见布局对比:

布局特点考试出场率
null(绝对布局)手动设置位置,直观,考试常用
FlowLayout从左到右排列,自动换行
BorderLayout上、下、左、右、中五个区域
GridLayout网格布局,平均分割空间中低

3. 常用 Swing 组件

组件类名常用方法
文本框JTextFieldgetText() 获取文本
密码框JPasswordFieldgetPassword() 获取 char[]
标签JLabel显示提示文字或图片
按钮JButtonsetText()addActionListener()
复选框JCheckBoxisSelected() 判断是否选中
下拉框JComboBoxaddItem() 添加选项,getSelectedItem() 获取选中值
面板JPanel容器组件,用于分组布局
弹窗JOptionPaneshowMessageDialog()showConfirmDialog()

4. 获取容器并添加组件

Swing 中,JFrame 内部有一个 内容面板,你需要先获取它再添加组件:

Container con = this.getContentPane();
con.add(组件对象);

如果直接 this.add() 在某些布局下也行,但考试通常用 getContentPane()


5. 事件监听(ActionListener)

Swing 事件采用监听器模式,按钮点击是最常考的:

JButton btn = new JButton("登录");
btn.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        String cmd = e.getActionCommand(); // 获取按钮文本
        JOptionPane.showMessageDialog(null, "点击了:" + cmd);
    }
});

口诀:

事件三步走

  1. 找到事件源(按钮)
  2. 注册监听器(addActionListener)
  3. 编写处理逻辑(actionPerformed)

6. 弹窗提示 —— JOptionPane

方法功能
showMessageDialog(null, "信息")普通提示框
showConfirmDialog(null, "确认吗?")确认框(是/否/取消)
showInputDialog("请输入内容")输入框

考试几乎必考 showMessageDialog


7. 二级 Java GUI 常见套路

  1. 类继承 JFrame,构造方法里设置窗口属性。
  2. 创建一个 init() 方法放所有组件创建和事件绑定。
  3. 所有组件用 setBounds() 定位,add() 到内容面板。
  4. 事件监听用匿名内部类实现。
  5. 弹窗提示用 JOptionPane

记住这个套路,即使没见过题,也能快速写出能跑的界面。


🔥 真题实战:QQ 登录界面

在这里插入图片描述

这是一道综合性的 GUI 编程题:

题目要求:创建一个模拟 QQ 登录界面的程序

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Main extends JFrame {  // 继承 JFrame
    private JTextField username;
    private JPasswordField password;
    private JLabel jl3;
    private JLabel jl4;
    private JButton bu1;
    private JButton bu2;
    private JButton bu3;
    private JCheckBox jc1;
    private JCheckBox jc2;
    private JComboBox<String> jcb;

    public Main() {
        this.setTitle("QQ2025正式版");     // 设置窗口标题
        init();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  // 关闭操作
        this.setLayout(null);             // 使用绝对定位
        this.setBounds(0, 0, 355, 265);   // 设置窗口大小和位置
        this.setResizable(false);         // 禁止调整大小
        this.setLocationRelativeTo(null); // 居中显示
        this.setVisible(true);            // 显示窗口
    }

    public void init() {
        Container con = this.getContentPane();  // 获取内容面板

        // 创建用户名输入框
        username = new JTextField();
        username.setBounds(50, 50, 150, 20);

        jl3 = new JLabel("注册账号");
        jl3.setBounds(210, 50, 70, 20);

        // 创建密码输入框
        password = new JPasswordField();
        password.setBounds(50, 80, 150, 20);

        jl4 = new JLabel("找回密码");
        jl4.setBounds(210, 80, 70, 20);

        // 创建复选框
        jc1 = new JCheckBox("记住密码");
        jc1.setBounds(125, 135, 80, 15);

        jc2 = new JCheckBox("自动登录");
        jc2.setBounds(215, 135, 80, 15);

        // 创建下拉框
        jcb = new JComboBox<>();
        jcb.addItem("在线");
        jcb.addItem("隐身");
        jcb.addItem("离开");
        jcb.setBounds(40, 135, 55, 20);

        // 创建按钮并添加事件监听器
        bu1 = new JButton("登录");
        bu1.setBounds(250, 200, 65, 20);
        bu1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String getName = username.getText();
                JOptionPane.showConfirmDialog(null, "您输入的用户名是 " + getName);
            }
        });

        bu2 = new JButton("多账号");
        bu2.setBounds(25, 200, 75, 20);

        bu3 = new JButton("设置");
        bu3.setBounds(140, 200, 65, 20);

        // 将所有组件添加到容器中
        con.add(username);
        con.add(password);
        con.add(jl3);
        con.add(jl4);
        con.add(jc1);
        con.add(jc2);
        con.add(jcb);
        con.add(bu1);
        con.add(bu2);
        con.add(bu3);
    }

    public static void main(String[] args) {
        new Main();
    }
}

执行结果:

在这里插入图片描述

真不是我夸,这题库太妙了,这个 GUI 功能简直点睛之笔。


结语:

差不多也就这些内容(其实真不少)

题库平台最后还是拿出来夸一下:java.code2ji.cn

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值