(Java)JFrame窗体的基本操作(1-窗体的创建)

简介: 什么是窗体?窗体,是某个程序,在电脑中,手机中的窗口化程序。它在非固定状态下,可以自由的变换大小。同时,窗体,也是容器,窗体这个容器可以在内部处理很多的小组件。窗体的具体例子:例如,所有的浏览器,浏览器中网页里打开的提示框,电脑的QQ,手机上的小窗模式,都是窗体;在本篇内容中,我们会使用JFrame和JDialog两个类,在实现java中的窗体;在JAVA中如何创建窗体?在java中,我们需要引入javax.swing包下的JFrame类或者JDialog类,这样才能使用两个窗体;但是,一些窗

什么是窗体?

  • 窗体,是某个程序,在电脑中,手机中的窗口化程序。它在非固定状态下,可以自由的变换大小。同时,窗体,也是容器,窗体这个容器可以在内部处理很多的小组件。
  • 窗体的具体例子:例如,所有的浏览器,浏览器中网页里打开的提示框,电脑的QQ,手机上的小窗模式,都是窗体;
  • 在本篇内容中,我们会使用JFrame和JDialog两个类,在实现java中的窗体;

在JAVA中如何创建窗体?

在java中,我们需要引入javax.swing包下的JFrame类或者JDialog类,这样才能使用两个窗体;但是,一些窗体中的组件也会用到swing包下的一些类,所以引用包的时候,通常都会是import javax.swing.*;来引用swing包下的所有类;

另:JFrame和JDialog外表基本一致,只是在运行中的调度不同,因此本节只考虑如何创建窗体。因为两个类的外表基本一致,所有下列两种创建方法两个类都是可以使用的(退出方法外);

  • 方法一:构造方法的创建
import javax.swing.*; 
public class windowJFame_JDialog extends JFrame{
  public windowJFrame_JDialog() {
    
  }
}
  • 在主类中继承JFrame这个类,那么他的构造方法就是一个窗体。在这个构造方法中我们无需再实例化JFrame这个类,我们可以直接调用关于JFrame类中的方法,例如设置大小和坐标;
    同时,在主类中继承JFrame时,我们也可以在非主类上实现,如:
class windowDemo extends JFrame{
  public windowDemo() {
    
  }
}
  • 这样windowDemo这个构造方法也是可以被作用成JFrame窗体的。
  • 方法二:实例化调用
    有人说,用构造方法创建的话,局限性是不是太多了?没关系,java还提供了实例化的方式来创建窗体:
public static void main(String[] args){
  JFrame jf = new JFrame();// 实例化JFrame窗体
}
  • 我们在main方法中实例化了JFrame对象,使用jf来接收这个对象;这样jf就是一个窗体,在运行时就会实现这个窗体(前提设置窗体可见);
    在实例化方式创建完窗体后,将不再提供默认对象了,也就是不能直接调用JFrame中的方法!在需要调用方法的时候我们需要借助接收的jf这个变量对象来调用JFrame中的方法;

基本运作的方法:

上面我们只是创建了一个或多个窗体,但运行的时候并未显示出窗体,这是怎么回事?

Java呢,将JFrame和JDialog两个类的窗体都默认设置成了不可见,在窗体不可见的情况下,java无法实现窗体这些代码(用户看不见而已)。这时,我们将setVisible方法设置为true,这样窗体就可见了。

上图中右下角的就是我们所设置的窗体,由于现在并没有设置大小和坐标,可能你看见的窗体是图中的样子,但是坐标是在屏幕的左上角。

所以,现在来给它设置大小以及坐标。

具体方法如上图,方法的使用在图中以及给出

这里还有个方法setLocationRelativeTo() —— 将窗口的位置设置为指定的组件。在做些小例子的时候,使用该方法将值设为null,可以直接使窗体居中。

设置完大小和坐标,这时,一个窗体也就差不多完成了,但是还有一步!

我们再点击窗体退出的时候,项目并未结束。这里将再调用setDefaultCloseOperation()这个方法,这个方法中定义了一些关于窗体退出时对于项目和窗体的操作

参数如下:

/*
   * EXIT_ON_CLOSE : 隐藏窗口,并停止运行
   * DO_NOTHING_ON_CLOSE : 无任何操作
   * HIDE_ON_CLOSE : 隐藏窗体,但不停止程序
   * DISPOSE_ON_CLOSE : 释放窗体资源
   * 
   * */

这时,设置窗体退出时的操作吧。像下图调用完后,窗体退出后项目也就可以停止运行了

后语:

看完上述操作后,对于JFrame窗体也就有了一个大概的了解,但这也仅仅只是一点点而已。对于窗体,我会分几篇来说明,这才是第一篇:如何创建窗体。

小提:上述的代码,虽然我都是用JFrame类来说明创建,如果将JFrame类替换成JDialog,程序将不提供窗体退出的方法,因为JDialog是一个对话框,本质是配合JFrame来使用的,这点需要注意;

如果有任何错误的地方,请在评论区及时说明!

目录
相关文章
|
29天前
|
Java 虚拟化 容器
(Java)Java里JFrame窗体的基本操作(容器布局篇-1)
容器 容器,我的理解是可以包容其他东西的玩意。它可以是一个盒子,可以是一个虚拟化的物品,可只要能包裹住其他存在质体的东西,那么都可以称作是容器。例如:JPanel组件和JScollPane组件两者都是容器也是组件。 既然有容器,那么容器中的布局就必不可少了。不然不规矩的摆放物品,人类看不习惯,我也看不习惯 ???? 本篇内容,将说明java JFrame窗体里容器中几类布局。 说明:所有在JFrame窗体里的容器布局都会使用setLayout()方法,采用的布局参数都将放进这个方法里 绝对布局 调用窗体容器
55 1
|
29天前
|
Java 数据安全/隐私保护 索引
(Java)Java里JFrame窗体的基本操作(组件篇-3)
回顾 说过了下拉框和下拉列表,本篇内容将了解滚动面板和各类输入框 什么是组件? 如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入; 另:在使用组件前,请先将窗体中的内容类给实例化出来进行操作,代码如下: Container c = getContentPane(); JScollPane JScollPane类,说的就是滚动面板。它不同于其他组件,它是一个容器,
45 1
|
29天前
|
Java 索引 容器
(Java)Java里JFrame窗体的基本操作(组件篇-2)
回顾 这算是JFrame窗体基本操作的组件第二篇了,上一篇说过了单选框,复选框,按钮。 在这一篇中,我会说明下拉框和列表框 什么是组件? 自行百度:java中JFrame窗体里的组件是什么? 名字都给你想好了 ( :I ) JComBox下拉框 JComBox类,就是下拉框,实例化出来后,要填写泛型<>,添加是什么数据类型的内容,泛型中就写上该数据类型; JComboBox<?> combox = new JComboBox<>(); 以下实例化下拉框的时候我泛型写的全
61 0
|
29天前
|
Java 容器
(Java)Java里JFrame窗体的基础操作(组件-1)
如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,当然这只是在不熟悉组件的前提下。如果深入了解了组件,那么它有着非常多的组件,这些组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入
42 1
|
Java Maven
使用java语言制作一个窗体(弹窗),用来收集用户输入的内容
该博客文章介绍了如何使用Java Swing中的JFrame创建一个窗体来收集用户输入的内容,并提供了详细的实现步骤和完整代码示例。
使用java语言制作一个窗体(弹窗),用来收集用户输入的内容
|
设计模式 Java 容器
Java一分钟之-Swing基础:JFrame, JPanel, JButton
Java Swing教程介绍了构建桌面应用的关键组件:JFrame(顶级容器,显示主窗口)、JPanel(组合其他组件的容器)和JButton(交互元素)。文中通过示例代码展示了这些组件的使用,并列出常见问题及解决方法,如确保设置JFrame的可见性和关闭操作,正确添加组件至JPanel,以及为JButton添加事件监听器。理解这些基础将有助于开发功能完善的GUI应用。
616 0
|
Java
【Java】打开窗体后自动播放背景音乐代码实现
【Java】打开窗体后自动播放背景音乐代码实现
254 0
|
Linux
Java-如何去掉JFrame上的最大化最小化和关闭按钮(转)
在JDK1.4以前,我们只有一种方式来去掉窗口的标题栏,那就是直接使用JWindow,用JWindow来代替JFrame使用。但用过JWindow的人一定知道,JWindow在操作系统的任务栏是不可见的,这样我们就无法在几个视窗之间来切换到这个窗口了。
1962 0
|
29天前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
96 1
|
29天前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
99 1