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创建窗口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 用Maven插件生成Mybatis代码的实现方法

    用Maven插件生成Mybatis代码的实现方法

    本文主要介绍 Maven插件生成Mybatis代码,现在做开发的朋友有好多用Maven 来管理代码,这里给大家举个例子,有需要的同学可以看下
    2016-07-07
  • Springmvc ModelAndView原理及用法详解

    Springmvc ModelAndView原理及用法详解

    这篇文章主要介绍了Springmvc ModelAndView原理及用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringBoot切面拦截@PathVariable参数及抛出异常的全局处理方式

    SpringBoot切面拦截@PathVariable参数及抛出异常的全局处理方式

    这篇文章主要介绍了SpringBoot切面拦截@PathVariable参数及抛出异常的全局处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 基于SpringMVC实现网页登录拦截

    基于SpringMVC实现网页登录拦截

    SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。因此,本文将为大家介绍如何通过SpringMVC实现网页登录拦截功能,需要的小伙伴可以了解一下
    2021-12-12
  • 多个JDK版本(Java 8、Java 17、Java 21)下载和切换

    多个JDK版本(Java 8、Java 17、Java 21)下载和切换

    为了在实际中可以任意选择所需的JDK版本,需要将多个JDK版本进行切换,本文主要介绍了多个JDK版本(Java 8、Java 17、Java 21)下载和切换,感兴趣的可以了解一下
    2025-04-04
  • JAVA使用Ip2region获取IP定位信息的操作方法

    JAVA使用Ip2region获取IP定位信息的操作方法

    这篇文章主要介绍了JAVA使用Ip2region获取IP定位信息,ip2region - 是国内开发者开发的离线IP地址定位库,针对国内IP效果较好,国外的部分IP只能显示国家,对java获取IP定位信息操作过程感兴趣的朋友一起看看吧
    2022-05-05
  • 利用Java手写阻塞队列的示例代码

    利用Java手写阻塞队列的示例代码

    在我们平时编程的时候一个很重要的工具就是容器,在本篇文章当中主要给大家介绍阻塞队列的原理,并且在了解原理之后自己动手实现一个低配版的阻塞队列,感兴趣的可以尝试一下
    2022-08-08
  • Java枚举抽象方法实例解析

    Java枚举抽象方法实例解析

    这篇文章主要介绍了Java枚举抽象方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java实现四则混合运算代码示例

    Java实现四则混合运算代码示例

    这篇文章主要介绍了Java实现四则混合运算代码示例,文中展示了详细代码,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • 浅谈普通for循环遍历LinkedList弊端

    浅谈普通for循环遍历LinkedList弊端

    下面小编就为大家带来一篇浅谈普通for循环遍历LinkedList弊端。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论