实验报告 布局管理器

实验目的

  1. 熟练掌握布局管理器

实验要求:

(1)掌握布局管理器的使用

(2)代码应遵循Java编程规范,包含恰当的注释说明

实验内容:

  1.仿照window计算器,实现计算器界面。
  2.使用绝对定位,实现注册和登录界面。


实验1:仿照window计算器,实现计算器界面

源代码:

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

// 定义一个名为Calculate的公共类
public class Calculate {
    // 定义私有成员变量
    private JFrame jFrame; // 窗口对象
    private JTextField jTextField; // 文本输入框对象
    private JLabel jLabelMenu; // 菜单标签对象
    private JPanel panel; // 面板对象
    private JButton[] jButtons; // 按钮数组对象
    private JLabel[] jLabelArray; // 标签数组对象

    // 构造方法
    public Calculate() {
        // 创建窗口对象并设置标题
        jFrame = new JFrame("计算器");

        // 设置窗口布局为null,即绝对布局
        jFrame.setLayout(null);

        // 创建菜单标签对象并设置文本、字体和位置
        jLabelMenu = new JLabel(" ≡标准≡");
        jLabelMenu.setFont(new Font("", Font.BOLD, 15));
        jLabelMenu.setBounds(0, 0, 60, 40);
        jFrame.add(jLabelMenu); // 将菜单标签添加到窗口中

        // 创建文本输入框对象并设置字体、大小和位置
        jTextField = new JTextField();
        jTextField.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        jTextField.setFont(new Font("宋体", Font.BOLD, 50));
        jTextField.setBounds(5, 45, 345, 100);
        jFrame.add(jTextField); // 将文本输入框添加到窗口中

        // 创建标签数组对象并初始化长度为6
        jLabelArray = new JLabel[6];
        String[] Tool = {"MC", "MR", "M+", "M-", "MS", "M﹀"};
        for (int i = 0; i < 6; i++) {
            // 创建标签对象并设置文本、前景色和位置
            jLabelArray[i] = new JLabel(Tool[i]);
            jLabelArray[i].setForeground(Color.GRAY);
            jLabelArray[i].setBounds(15 + i * 60, 140, 40, 30);
            jFrame.add(jLabelArray[i]); // 将标签添加到窗口中
        }

        // 创建面板对象并设置布局、大小和位置
        panel = new JPanel(new GridLayout(6, 4, 5, 5));
        panel.setBounds(5, 165, 345, 320);

        // 定义按钮文本数组
        String[] btnArry = {
                "%", "CE", "C", "DEL",
                "1/x", "x^2", "²√ ̄", "÷",
                "7", "8", "9", "X",
                "4", "5", "6", "-",
                "1", "2", "3", "+",
                "±", "0", ".", "="
        };

        // 创建按钮数组对象并初始化长度为24
        jButtons = new JButton[24];
        for (int i = 0; i < 24; i++) {
            // 创建按钮对象并设置文本、背景色
            jButtons[i] = new JButton(btnArry[i]);
            jButtons[i].setFont(new Font("",Font.BOLD,15));
            if(i<23) {
                jButtons[i].setBackground(Color.WHITE);
            }else{
                jButtons[i].setBackground(Color.BLUE);
                jButtons[i].setForeground(Color.WHITE);
            }
            panel.add(jButtons[i]); // 将按钮添加到面板中
        }
        jFrame.add(panel); // 将面板添加到窗口中

        // 设置窗口大小、不可调整大小、位置和可见性
        jFrame.setSize(370, 530);
        jFrame.setResizable(false);
        jFrame.setLocation(560, 130);
        jFrame.setVisible(true);
    }
}
public class Test {
    public static void main(String[] args) {
        new Calculate();
    }
}

 实验结果:


实验2:使用绝对定位,实现注册和登录界面

源代码:

import javax.swing.*;
import java.awt.*;
// 定义一个名为RegisterWindows的类,继承自JFrame
public class RegisterWindows extends JFrame {
    // 定义组件变量
    private JFrame jframe; // 注册窗口
    private JLabel labelUser, labelPsw, labelSex, labelPro, labelHob; // 标签组件
    private JTextField jtUser; // 用户名输入框
    private JPasswordField jPwd; // 密码输入框
    private JRadioButton jrBoy, jrGirl; // 性别单选按钮
    private JComboBox<String> jcBox; // 专业下拉框
    private JCheckBox jcDance, jcSing, jcRead; // 爱好复选框
    private JButton btnRegister; // 注册按钮
    private ButtonGroup group1; // 性别单选按钮组
    // 构造方法
    public RegisterWindows() {
        // 初始化窗口
        jframe = new JFrame("注册");
        jframe.setLayout(null); // 设置布局管理器为空,使用绝对布局
        // 初始化用户名标签和输入框
        labelUser = new JLabel("用户名");
        labelUser.setBounds(5, 5, 40, 30); // 设置标签位置和大小
        jframe.add(labelUser); // 将标签添加到窗口中
        jtUser = new JTextField(); // 创建用户名输入框
        jtUser.setBounds(55, 5, 200, 30); // 设置输入框位置和大小
        jframe.add(jtUser); // 将输入框添加到窗口中
        // 初始化密码标签和输入框
        labelPsw = new JLabel("密码");
        labelPsw.setBounds(5, 45, 40, 30); // 设置标签位置和大小
        jframe.add(labelPsw); // 将标签添加到窗口中
        jPwd = new JPasswordField(); // 创建密码输入框
        jPwd.setBounds(55, 45, 200, 30); // 设置输入框位置和大小
        jframe.add(jPwd); // 将输入框添加到窗口中
        // 初始化性别标签和单选按钮
        labelSex = new JLabel("性别");
        labelSex.setBounds(5, 85, 40, 30); // 设置标签位置和大小
        jframe.add(labelSex); // 将标签添加到窗口中
        jrBoy = new JRadioButton("男", true); // 创建男性单选按钮,默认选中
        jrGirl = new JRadioButton("女"); // 创建女性单选按钮
        jrBoy.setBounds(55, 85, 40, 30); // 设置男性单选按钮位置和大小
        jrGirl.setBounds(100, 85, 40, 30); // 设置女性单选按钮位置和大小
        group1 = new ButtonGroup(); // 创建单选按钮组
        group1.add(jrBoy); // 将男性单选按钮添加到组中
        group1.add(jrGirl); // 将女性单选按钮添加到组中
        jframe.add(jrBoy); // 将男性单选按钮添加到窗口中
        jframe.add(jrGirl); // 将女性单选按钮添加到窗口中
        // 初始化专业标签和下拉框
        labelPro = new JLabel("专业");
        labelPro.setBounds(5, 125, 40, 30); // 设置标签位置和大小
        jframe.add(labelPro); // 将标签添加到窗口中
        jcBox = new JComboBox<String>(); // 创建专业下拉框
        jcBox.setBounds(55, 125, 150, 30); // 设置下拉框位置和大小
        jcBox.addItem("计算机科学与技术"); // 添加计算机科学与技术选项
        jcBox.addItem("软件工程"); // 添加软件工程选项
        jcBox.addItem("大数据"); // 添加大数据选项
        jframe.add(jcBox); // 将下拉框添加到窗口中
        // 初始化爱好标签和复选框
        labelHob = new JLabel("爱好");
        labelHob.setBounds(5, 165, 40, 30); // 设置标签位置和大小
        jframe.add(labelHob); // 将标签添加到窗口中
        jcDance = new JCheckBox("跳舞"); // 创建跳舞复选框
        jcSing = new JCheckBox("唱歌"); // 创建唱歌复选框
        jcRead = new JCheckBox("阅读"); // 创建阅读复选框
        jcDance.setBounds(55, 165, 60, 30); // 设置跳舞复选框位置和大小
        jcSing.setBounds(105, 165, 60, 30); // 设置唱歌复选框位置和大小
        jcRead.setBounds(155, 165, 60, 30); // 设置阅读复选框位置和大小
        jframe.add(jcDance); // 将跳舞复选框添加到窗口中
        jframe.add(jcSing); // 将唱歌复选框添加到窗口中
        jframe.add(jcRead); // 将阅读复选框添加到窗口中
        // 初始化注册按钮
        btnRegister = new JButton("注册");
        btnRegister.setBounds(155, 205, 60, 30); // 设置按钮位置和大小
        jframe.add(btnRegister); // 将按钮添加到窗口中
        // 设置窗口大小和位置
        jframe.setSize(400, 300);
        jframe.setLocation(560, 280);
        jframe.setVisible(true); // 设置窗口可见
    }
}
public class Test1 {
    public static void main(String[] args) {
    new RegisterWindows();
    }
}

实验结果:


实验总结:

    ​    ​在本次实验中,我们的目标是熟练掌握布局管理器的使用。通过完成两个实验内容,我们成功地达到了这个目标。

首先,我们仿照Windows计算器实现了一个计算器界面。在这个过程中,我们学习了如何使用布局管理器来安排计算器的各个组件,如按钮、显示屏等。我们尝试了不同的布局管理器,如GridLayout、BorderLayout等,以便更好地组织计算器的布局。接下来,我们使用绝对定位实现了注册和登录界面。通过设置组件的确切位置,我们能够精确地控制界面的外观。这使得我们能够根据需求调整组件的位置,以实现更美观的界面。在整个实验过程中,我们始终遵循Java编程规范,确保代码具有良好的可读性和可维护性。我们还为代码添加了恰当的注释说明,以帮助其他人理解我们的实现思路。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万叶学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值