小工具知识网

当前位置: 首页 > 行业知识 > Java swing —— 创建一个窗口

行业知识

Java swing —— 创建一个窗口

2026-10-25 20:48:00 来源:互联网转载

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都是抽象类,所以我们需要创建它们的子类。

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

    2. 在窗口类类的构造方式中调用父类的构造方法( 用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比较简单,但是构造子类结构更加清晰。

上一篇:揭秘荒野乱斗英文译名背后的故事,热门游戏标题一网打尽!

下一篇:Win10 PE深度探索与解析