Java中利用Swing构建一个简单的窗口(三)——使用FlowLayout布局

本文讲解了Swing组件与AWT的区别,Swing为何在组件名前加J,以及使用FlowLayout布局创建GUI程序的方法。通过实例展示了如何使用JFrame、JLabel、JTextField等Swing组件构建一个简单的输入表单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在前面我们已经学习过JFrame、JButton这些只是,为什么这些类前面都要加上一个J呢,为什么不能简单的命名为Button呢?

其实,在ATW里面就已经有Button这个类了,我们一直在使用的是Swing,所以要与AWT有所区别。

AWT是抽象窗口工具箱,只适合开发简单的图形用户界面,不适合开发复杂的GUI项目,而且AWT容易发生与平台相关的故障,所以需要一种更加独立的组件,所以Swing就出现了。

Swing更少的依赖平台,不依赖于自己的GUI,是一个轻量级组件,AWT是重量级组件。

为了区分新的组件Swing与AWT,故在组件名称前面都加上一个J。

AWT注定是要退出历史舞台的,MFC就更别提了。

创建GUI的新风格

代码如下:

package Test;

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

public class TestFrame extends JFrame{
    public TestFrame() {
        setLayout(new FlowLayout(FlowLayout.LEFT,10,20));

        add(new JLabel("First Name"));
        add(new JTextField(8));
        add(new JLabel("MI"));
        add(new JTextField(1));
        add(new JLabel("Last Name"));
        add(new JTextField(8));
    }

    public static void main(String[] args) {
        TestFrame frame=new TestFrame();
        frame.setTitle("SHowFlowLayout");
        frame.setSize(200,200);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

效果

在这里插入图片描述

可以看出这里创建窗口的方式与之前不一样,这里的类是继承自JFrame类,我们构建了一个构造方法,然后再主方法里面对构造方法进行实例化。

这样写的好处比较多,因为创建GUI程序的时候,集成JFrame是很自然的事情,可以进一步扩展新的组件或者功能,最方便的一点是这个类可以重复使用。

FlowLayout

使用Layout的方式布局,当一行放不下的时候,就会自动换行。

有趣的是,当我们拉长框架,组件也会跟着变化,如果把框架拉大,那么组件会继续排成一行,效果如下:
在这里插入图片描述

解释一下上述代码的作用

FlowLayout(FlowLayout.LEFT,10,20)

这里表示所有元素左对齐,每个元素之间行距是10,列距是20。

FlowLayout(FlowLayout.RIGHT,0,0)

这个就表示所有元素右对齐,每个元素之间紧贴,行距和间距都为零。

上述代码其实等价于

FlowLayout layout=new FlowLayout(FlowLayout.LEFT,10,20);
setLayout(layout);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值