Java swing创建一个窗口的简单步骤

 更新时间:2024年06月22日 11:35:58   作者:阿常11  
这篇文章主要给大家介绍了关于Java swing创建一个窗口的简单步骤,Java Swing是Java平台下的GUI(Graphical User Interface,图形用户界面)工具包,提供了丰富的GUI组件,可以实现复杂的图形界面应用程序,需要的朋友可以参考下

swing组件分类:

  • 顶层容器:JFrame、JApplet、JDialog、JWindow
  • 中间容器:JPanel、JScrollPane、JSplitPane、JToolBar
  • 基本控件: ImageIcon(图标),JLabel(标签),ITextField(文本框),JTextArea(文本区域),JScrollPane(可滚动窗格),JScrollBar(滚动条),ICheckBox(复选框),JRadioButton(单选按钮),JComboBox(下拉式列表和组合框)。

创建界面

了解完之后,我们开始创建窗口。

把界面类声明为JFrame或JWindow的子类。

要创建swing程序,首先需要创建一个表示图形界面(窗口)的类。这个类的对象被当作容器,用于存储其他组件。

大多数情况下,采用JWindow类或者JFrame类。

  • JWindow是可被显示到用户界面上。简单窗口没有标题栏,最大化、最小化和关闭按钮,也没有操作系统普通窗口常用的其他元素。
  • 包括这些窗口管理特性的窗口被称为JFrame。(因此一般优先JFrame)

注意:JWindow和JFrame都是抽象类,所以我们需要创建它们的子类。

  • 把窗口类声明为JFrame或JWindow的子类。

  • 在窗口类类的构造方式中调用父类的构造方法( 用super( ) ),来设置窗口类。

JFrame的构造方法

  • JFrame():创建一个无标题的窗口。
  • JFrame(String title):创建一个指定窗口标题的窗口。

设置方法

请添加图片描述

下面来介绍一下JFrame提供的,设置窗口的方法:

方法名和参数方法概述
setSize(int width, int height)设置窗口的大小,参数width和height分别表示窗口的宽度和高度。
setLocation(int x, int y)参数x和y分别表示窗口的坐标
setBounds(int a, int b, int width, int height)设置窗口的位置和大小,参数a和b表示窗口的初始位置,参数width和height表示窗口的宽度和高度。
setResizable(boolean b)设置窗口是否可调整大小,参数b为true表示可以调整大小,为false表示不可调整大小。
setVisible(boolean b)设置窗口是否可见,参数b为true表示可见,为false表示不可见。
setDefaultCloseOperation(int operation)设置窗口关闭时的操作,参数operation有多种取值可选
setExtendedState(int state):设置窗口的扩展状态,可以使窗口最大化、最小化或恢复大小

这些设置方法一般在窗口类的构造方法中就书写清楚,例如常见的标题、大小、可见度、位置坐标和关闭时的操作等等。

setDEfaultCloseOPeration(int operation)

下面是operation的范围以及描述。

关闭窗体方式描述
EXIT_ON_CLOSE退出应用程序,默认窗口关闭
DO_NOTHING_ON_CLOSE什么都不做就将窗体关闭
DISPOSE_ON_CLOSE移除窗口的默认窗口关闭操作
HIDE_ON_CLOSE隐藏窗口的默认窗口关闭
import javax.swing.*;

class jFrame extends JFrame {
    public jFrame (String title, int x, int y, int width, int height) {
        super(title);                     //调用父类构造方法设置标题
        setBounds(x, y, width, height);   //一步到位把位置和大小设置好
        setVisible(true);                 //设置窗口可见性
        setDefaultCloseOperation(EXIT_ON_CLOSE);  //设置关闭方式
    }
}
public class test {
    public static void main(String[] args) {
        jFrame frame = new jFrame("frame",100,100,500,500);
    }
}

可以看到我们得到了一个标题为frame的空白窗口。

操作方法

下面是窗口类的操作方法,后边会对组件等进行详细讲解。

方法名和参数方法概述
add(Component comp)向容器中添加组件,参数comp为要添加的组件。
getContentPane()获取窗口的内容面板,可以通过该方法向内容面板添加组件。
dispose()撤销当前窗口并释放所有使用的资源
import javax.swing.*;

class jFrame extends JFrame {
    public jFrame (String title, int x, int y, int width, int height) {
        super(title);                     //调用父类构造方法设置标题
        setBounds(x, y, width, height);   //一步到位把位置和大小设置好
        setVisible(true);                 //设置窗口可见性
        setDefaultCloseOperation(EXIT_ON_CLOSE);  //设置关闭方式

        JLabel jLabel = new JLabel("这是一个带有标题的窗口");//这是一个标签组件
        jLabel.setHorizontalAlignment(SwingConstants.CENTER); //设置文本位置
        add(jLabel);                       //调用add函数将标签组件添加到抽口当中

    }
}
public class test {
    public static void main(String[] args) {
        jFrame frame = new jFrame("frame",100,100,500,500);
    }
}

可以看到我们得到了一个标题为frame,内容为"这是一个带有标题的窗口"的窗口。

直接定义JFrame类来创建窗口

也可以 直接定义JFrame类来创建窗口。

import javax.swing.*;
import java.awt.*;
public class test {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame("jFrame");
        jFrame.setBounds(300,300,500,500);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        Label label = new Label("label");
        jFrame.add(label);
    }
}

这么看其实直接定义JFrame比较简单,但是构造子类结构更加清晰。

总结

到此这篇关于Java swing创建一个窗口的文章就介绍到这了,更多相关Java swing创建窗口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java对象在JVM中的生命周期详解

    Java对象在JVM中的生命周期详解

    这篇文章主要介绍了Java对象在JVM中的生命周期详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • SpringBoot 多环境开发实战(从配置、管理与控制)

    SpringBoot 多环境开发实战(从配置、管理与控制)

    本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、Maven Profile分组及激活策略,通过优先级控制灵活切换环境,实现配置分离、协同管理,提升项目稳定性与迭代效率,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • Java多线程 原子操作类详细

    Java多线程 原子操作类详细

    这篇文章主要介绍了Java多线程中的原子操作类,原子的本意是不能被分割的粒子,而对于一个操作来说,如果它是不可被中断的一个或者一组操作,那么他就是原子操作。显然,原子操作是安全的,因为它不会被打断,需要的朋友可以参考下
    2021-10-10
  • Java HttpClient实现socks代理的示例代码

    Java HttpClient实现socks代理的示例代码

    这篇文章主要介绍了Java HttpClient 实现 socks 代理的示例代码,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-11-11
  • 基于SpringBoot和Dify实现流式响应输出

    基于SpringBoot和Dify实现流式响应输出

    这篇文章主要为大家详细介绍了如何基于SpringBoot和Dify实现流式响应输出效果,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2025-03-03
  • RocketMQ中的消息发送与消费详解

    RocketMQ中的消息发送与消费详解

    这篇文章主要介绍了RocketMQ中的消息发送与消费详解,RocketMQ是一款高性能、高可靠性的分布式消息中间件,消费者是RocketMQ中的重要组成部分,消费者负责从消息队列中获取消息并进行处理,需要的朋友可以参考下
    2023-10-10
  • Mybatis实现指定sql返回值类型

    Mybatis实现指定sql返回值类型

    文章介绍了Mybatis中处理不同返回值情况的方法,包括返回值只有一个和有多个的情况,对于返回值只有一个,可以直接返回该值;对于多个返回值,可以使用POJO对象、List集合或Map集合进行封装,每种方法都有其适用的场景
    2025-12-12
  • java 解析由String类型拼接的XML文件方法

    java 解析由String类型拼接的XML文件方法

    今天小编就为大家分享一篇java 解析由String类型拼接的XML文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 详解如何在SpringBoot里使用SwaggerUI

    详解如何在SpringBoot里使用SwaggerUI

    本篇文章主要介绍了详解如何在SpringBoot里使用SwaggerUI,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 解决Mybatis中mapper的ID冲突问题

    解决Mybatis中mapper的ID冲突问题

    这篇文章主要介绍了解决Mybatis中mapper的ID冲突问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论