Swing程序设计(2)JFrame窗体

news2024/11/19 18:37:39

文章目录

  • 前言
  • 一、JFrame窗体的介绍
    • 1.创建JFrame窗体
    • 2.窗体容器中添加或移除组件
  • 二、JFrame窗体的使用
    • 1.JFrame类的常用构造方法
    • 2.实例相关语法
  • 总结

前言

        该文将较为详细地介绍了Swing组件中的JFrame窗体。JFrame窗体是大部分Swing组件的一个载体,这些组件都要在这个窗体上面。而JDialog是一个对话框,可以理解为JFrame窗体向下细分的一个对话框窗体。


一、JFrame窗体的介绍

        1.创建JFrame窗体

        JFrame窗体是Swing应用程序中各个组件的承载体,处于十分重要的位置。在开发程序界面时,通过继承 java.swing.JFrame类,创建一个窗体对象,在这个窗体中添加组件,同时为组件设置事件(通常做法:创建一个方法进行此操作,再于main静态方法中实例化调用)。        

        语法:

JFrame jf = new JFrame(title);
//jf:JFrame类的对象
Container container = jf.getContentPane();
//container:Container类的对象,使用JFrame对象调用getContentPane()方法获取

                getContentPane() 方法:Swing组件的窗体于组件和容器相关,所以在创建完JFrame对象后,需要调用getContentPane() 方法将窗体转换为容器,然后才能在该窗体(容器)中添加组件或设置布局管理器。              

        2.窗体容器中添加或移除组件

        (1)添加组件至容器的语法:add()方法

                容器对象.add(new 组件("组件名称"));

                  实例: 

container.add(new JButton("按钮"));
//向 container 容器添加了一个“按钮”组件

                   添加后,界面效果展示:

       (2)将组件从容器中删除的语法:remove()方法

                 容器对象.remove(new 组件(”按钮“));               

                  实例:

container.remove(new JButton("按钮"));
//从container容器中删去一个“按钮”的组件

                   移除后,界面效果展示: 

二.JFrame窗体的使用 

        1.JFrame类的常用构造方法

        第一种形式的构造方法:创建一个不可见没有标题的新窗体。 (要使用 setVisible(布尔值)方法使得窗体可见,一但可见,并且在main静态方法中实例化该方法后,点击运行就会生成这个窗体)

public JFrame(){

    //some codes

}

         第二种形式的构造方法:创建一个不可见有标题的新窗体。(本实例中采取此方法,并且都要用setVisible()方法,在main静态方法中实例化)        

public JFrame(String title){
    //title为窗体的标题,可自定义
    //some codes

}

            实例:                                  

import javax.swing.*;
import java.awt.*;
//导入swing包,awt包

public class Demo extends JFrame{
//定义一个继承了JFrame窗体类的类,使其可以随意调用JFrame类中的方法
    public void MyJFrame(String title){
        //创建一个方法,用于构建窗体
        JFrame jf = new JFrame(title);
        //实例化一个JFrame窗体类对象,括号中为窗体的标题
        jf.setBounds(200, 200, 1000, 100);
        Container container = jf.getContentPane();
        //使用getContentPane()方法,获取该JFrame类对象的容器
        JLabel jLabel = new JLabel("创建了一个父窗体");
        //创建了一个JLabel标签对象,并且添加了内容
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);
        //使标签上的文字居中
        container.add(jLabel);
        //将标签添加到容器中
        container.setBackground(Color.WHITE);
        //设置容器的背景颜色
        jf.setVisible(true);
        //使窗体可见
        jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置窗体的关闭方式

    }

    public static void main(String[] args) {
        //在主方法中实例化 Demo类中的 MyJFrame方法
        new Demo().MyJFrame("创建了窗体");
    }
}

        输出结果: 

        在该实例中,Demo类继承了JFrame类,在该类创建的MyJFrame方法实例化JFrame对象,这是创建JFrame窗体的常用方法。

        2.实例相关语法

                   (1)setVisible()方法:使运行后,窗体可视化,在桌面生成窗体。(默认为false)

jf.setVisible(true);
//括号中的布尔值为是否显示窗体

                   (2)setBounds()方法:设置窗体的生成位置,窗体大小。

jf.setBounds(200, 300, 1000, 100);
/* 设置窗体对象窗体左上角的生成位置为:
 *    水平方法(x):200像素
 *    竖直方向(y):300像素
 * 设置窗体大小为:
 *    宽(x):1000像素
 *    高(y):100像素
*/

                   (3)setHorizontalAlignment()方法:设置文本的生成位置

jLabel.setHorizontalAlignment(SwingConstants.CENTER);
//SwingConstants.CENTER  swing组件内容居中
//由于是JLabel对象调用,所以标签的内容居中

                   (4)setBackground()方法:设置背景颜色

container.setBackground(Color.WHITE);
//设置了容器的背景颜色为白色,Color对象调用颜色为 白色 WHITE

                   (5)setDefaultCloseOperation()方法:设置关闭方式

jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
//设置窗体对象的关闭方式为 关闭,并停止运行程序
常用的四种关闭方式解释
DO_NOTHING_ON_CLOSE若无任何操作,则关闭窗体,不会终止程序
DISPOSE_ON_CLOSE任何注册监听程序对象后,自动关闭并释放窗体资源,不会终止程序
HIDE_ON_CLOSE关闭窗体,但不终止程序运行
EXIT_ON_CLOSE关闭窗体,并且终止程序运行


总结

        以上就是对java语言中Swing程序设计中JFrame窗体的使用的介绍。技术内容可能有所过时,适合在校新生学习,欢迎补充指正,博主会及时进行反馈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/955648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言练习7(巩固提升)

C语言练习7 编程题 前言 “芳林新叶催陈叶,流水前波让后波。”改革开放40年来,我们以敢闯敢干的勇气和自我革新的担当,闯出了一条新路、好路,实现了从“赶上时代”到“引领时代”的伟大跨越。今天,我们要不忘初心、牢记…

工作中提高CSS的编写效率,可以多用这三个CSS伪类

:where 基本使用 :where() CSS 伪类函数接受选择器列表作为它的参数&#xff0c;将会选择所有能被该选择器列表中任何一条规则选中的元素。 以下代码&#xff0c;文本都会变成 yellow 颜色 :where(div p) span {color: yellow; }<div class"test-div"><…

如何为你的公司选择正确的AIGC解决方案?

如何为你的公司选择正确的AIGC解决方案&#xff1f; 摘要引言词汇解释&#xff08;详细版本&#xff09;详细介绍1. 确定需求2. 考虑技术能力3. 评估可行性4. 比较不同供应商 代码快及其注释注意事项知识总结 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&…

微信8.0.41更新来了,看看有哪些变化吧

微信给我们带来了极大的方便&#xff0c;无论是日常聊天还是工作沟通&#xff0c;几乎离不开它。 时不时会给我一种熟悉的陌生感。 这个功能&#xff0c;好像我之前是没见过的。 就比如公众号信息流&#xff0c;刷着刷着就会发现&#xff0c;怎么会有看一看的信息推流会突然出现…

C语言控制语句——循环语句

什么是循环 重复执行代码 为什么需要循环 循环的实现方式 whiledo…whilefo while语句 语法格式&#xff1a; while (条件) {循环体…… }需求&#xff1a;跑步5圈 示例代码&#xff1a; #include <stdio.h>int main() {// 需求跑步5圈// 1. 条件变量的定义int i 1;…

golang入门笔记——nginx

文章目录 Nginx介绍Nginx的安装Nginx文件Nginx反向代理负载均衡nginx动静分离URLRewrite防盗链nginx高可用配置安全性Nginx限流Nginx缓存集成Lua脚本OpenRestry Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占用内存少&#xff0c;并发能力强&#x…

15-数据结构-二叉树的遍历,递归和非递归

简介&#xff1a; 本文主要是代码实现&#xff0c;二叉树遍历&#xff0c;递归和非递归&#xff08;用栈&#xff09;。主要为了好理解&#xff0c;直接在代码处&#xff0c;加了详细注释&#xff0c;方便复习和后期默写。主要了解其基本思想&#xff0c;为后期熟练应用…

plsql ebs 工作中的简单笔记

工作流中给系统界面发送消息&#xff1a; PROCEDURE wf_notify(p_sender IN VARCHAR2 DEFAULT SYSADMIN,p_receiver IN VARCHAR2,p_subject IN VARCHAR2,p_content_text IN VARCHAR2);PROCEDURE wf_notify(p_sender IN VARCHAR2 DEFAULT SYSADMIN,---发送…

模块和包(Python语言)

目录 一、什么是模块&#xff1f; 二、模块导入方式 2.1方法一&#xff1a; 2.2方法二&#xff1a; 2.3模块导入搜索路径&#xff1a; 2.4模块调用格式&#xff1a; 三、OS模块操作文件 四、模块的操作 4.1模块作用&#xff1a; 4.2模块分类&#xff1a; 4.3魔术变量…

EXSI技术--Exsi资源分割

我们在搭建好环境之后,就类似于有了一个服务器,现在我们就可以对着一个服务器进行一个虚拟化的操作。给不同的用户使用操作。现在,有一个名叫mit的科技企业需要租用服务器用于创建MySQL数据库集群;另外还有一个IECQ的企业需要服务器搭建电商平台。下面我们为这两个企业分割…

进程Start

Linux中的命令解释器和Windows的程序管理器explorer.exe一样地位,都是在用户态下运行的进程 共享变量发生不同进程间的指令交错&#xff0c;就可能会数据出错 进程只作为除CPU之外系统资源的分配单位 CPU的分配单位是线程 每个进程都有自己的独立用户空间 内核空间是OS内核的…

提高工作效率的一键查询和保存大量快递物流信息的技巧

在如今快速发展的电商行业中&#xff0c;物流服务的准确与便捷是保证顺利交付商品的重要环节。为了方便用户追踪物流&#xff0c;固乔快递查询助手应运而生。这款软件不仅能够快速查询快递单号的物流信息&#xff0c;还具备保存查询结果的功能&#xff0c;方便用户随时查看。 首…

光伏电站、变电站、等直流系统电参量测量仪器怎么选型

安科瑞虞佳豪 壹捌柒陆壹伍玖玖零玖叁 应用场景 工作拓扑图 功能 ①对电能参数进行采样计量和监测&#xff0c;逆变器或者能量管理系统&#xff08;EMS&#xff09;与之进行通讯&#xff0c;根据实时功率及累计电能实现防逆流、调节发电量、电池充放电等功能&#xff1b; ②…

初始化列表

文章目录 一. 初始化列表是什么&#xff1f;二. 为什么要有初始化列表&#xff1f;三. 初始化列表的特性四. explicit关键字五. statis成员六. 友元七. 内部类八. 匿名对象九. 编译器优化总结&#xff1a; 一. 初始化列表是什么&#xff1f; 初始化列表是构造函数真正初始化的地…

基于stm32的烟雾浓度检测报警proteus仿真设计(仿真+程序+讲解)

基于STM32的烟雾浓度检测报警仿真设计(仿真程序讲解&#xff09; 1.主要功能2.仿真3. 程序4. 资料清单&下载链接 基于STM32的烟雾浓度检测报警仿真设计(仿真程序讲解&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 设计编号&a…

Python编程

Lesson I 解rar压缩包的密码 1 下载Python并安装 网址: 注意选对是32 bit还是64 bit Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/ 2 安装unrar pip install unrar 3 下载u…

JS中方法、函数、属性是一个东西吗

在 JavaScript 中&#xff0c;方法、函数和属性是相关但不完全相同的概念。 方法&#xff08;Method&#xff09;&#xff1a;在对象中&#xff0c;方法是对象的属性&#xff0c;但它的值是一个函数。方法可以通过对象来调用&#xff0c;并且可以访问对象的属性和其他方法。 …

从《离婚律师》中学习代理模式

〇、前言 在2014年的时候&#xff0c;有一部非常火爆的电视剧叫做《离婚律师》&#xff0c;里面讲述了两名离婚律师池海东和罗郦的爱恨情仇&#xff0c;片子非常好看&#xff0c;当时我自己也怒刷了好几遍。 那么&#xff0c;在本剧的第四集中&#xff0c;有一段非常搞笑的剧情…

Linux学习之逻辑卷LVM用途和创建

理论基础 Linux文件系统建立在逻辑卷上&#xff0c;逻辑卷建立在物理卷上。 物理卷处于LVM中的最底层&#xff0c;可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列&#xff0c;这都可以。卷组建立在物理卷之上&#xff0c;一个卷组可以包含多个物理卷&#xff0c;而且在卷组…