JFrame窗体的基本操作(1-窗体的创建)
什么是窗体?
- 窗体,是某个程序,在电脑中,手机中的窗口化程序。它在非固定状态下,可以自由的变换大小。同时,窗体,也是容器,窗体这个容器可以在内部处理很多的小组件。
- 窗体的具体例子:例如,所有的浏览器,浏览器中网页里打开的提示框,电脑的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来使用的,这点需要注意;
如果有任何错误的地方,请在评论区及时说明!
JFrame窗体的基本操作(1-窗体的创建)相关推荐
- winform父窗体实现多个子窗体只能显示一个
一.前言 当一个父窗体中包含多个动能的时候可能会存在很多子窗体,那么当每个都去打开的时候就会都显示在父窗体上,这样给用户的视觉肯定很不舒服.所以当出现这种情况的时候肯定也会有解决方法,以下就是一种解决 ...
- C# 非模式窗体show()和模式窗体showdialog()的区别
对话框不是模式就是无模式的.模式对话框,在可以继续操作应用程序的其他部分之前,必须被关闭(隐藏或卸载).例如,如果一个对话框,在可以切换到其它窗 体或对话框之前要求先单击"确定"或 ...
- [CB]将窗体从属于主窗体
几乎所有正式一点的C++ Builder程序除了主窗体外都还有从属窗体,有时是对话框,有时是无模式窗口.VCL使得创建和显示从属窗体都易如反掌.但不是所有程序都适于采用无模式窗体,有些程序需要在一个主 ...
- c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...
C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...
- 将MATLAB的figure窗体嵌入到C#窗体应用的(panel)中
本文主要讲解将MATLAB绘制的figure窗体嵌入到C#winform窗体的panel控件中. 在网上找了相关的资料后,发现网上大部分的处理方法是创建新线程和跨线程的方式,复不复杂我就不说了,而且我 ...
- VB.NET学习笔记:一步一步跟我学习Windows 窗体可视化继承实现窗体复用
在一个项目中不可避免会有多个窗体的控件布局类似,里面的代码也有好多相同的,可以新建窗体,然后复制粘贴来实现窗体的重复使用,这种方式固然好,可麻烦也随之而来,随着项目的深入,不可避免的要修改窗体布局或代 ...
- C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列
1. C# WinForm 在窗口菜单上显示已打开窗体的标题 设置窗体菜单的MdiList属性为 True 2.窗体的排列 Code // // 平铺 base.LayoutMdi(MdiLayou ...
- C#窗体应用设置多窗体和设置启动窗体
场景 VS中使用C#开发一个登录窗体应用程序: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99439474 一个完整的Wind ...
- 拖动窗体的任意区域移动窗体
这是一个通过捕获WM_NCHITTEST消息来实现拖动窗体的任意区域移动窗体的方法. 在Form1的public部分声明WM_NCHITTEST消息处理过程: public procedure ...
最新文章
- 智能工厂的关键:基于机器学习的工业视觉
- leftjoin及多个leftjoin执行顺序
- 让 Linux 防火墙新秀 nftables 为你的 VPS 保驾护航
- 华为SNS2224巡检
- Leetcode No.146 ****
- python遗传算法_基于Python的遗传算法特征约简(附代码)
- R语言使用merge函数合并数据,如何保持原始数据顺序
- 解决Debug certificate expired的问题 - 转
- java连接SqlServer2000类,比较完整,比较强大
- 【VISIO2016箭头使用】
- Random Features for Large-Scale Kernel Machines笔记
- s数据结构替换子表java版,数据结构(Java版)-习题解答与实验指导
- 聊聊世界编程语言排行榜的事
- 性能魔方七剑下天山之青干剑:CDN2.0,速度加快一倍,成本减少一半
- RuntimeError: iter() is only supported inside of tf.function or when eager execution is enabled.
- 模板字符串`${}` 各种函数中的this指向?
- 一文读懂计算机组成,一文读懂为什么要做动态心电图检查?
- [源码分析] Facebook如何训练超大模型 --- (3)
- 重读《一段关于国产芯片和操作系统的往事》
- 倒金字塔java语言_金字塔和倒金字塔
热门文章
- linux nginx启动用户权限,Linux 普通用户(www)启动nginx
- GEE:GEDI L4A 地上生物量密度(AGBD)数据集下载
- h5 中的 section 标签
- jsplumb设置锚点_说明 · rysinal/jsPlumb Wiki · GitHub
- 头文件中加 #ifndef
- buuctf—数据包中的线索
- 现代软件工程 第一周作业
- 搞流量的小道道(扶摇生财思维)
- 计算机毕业设计Java网上投稿管理系统(源码+系统+mysql数据库+Lw文档)
- 【就业面试】技术面试题目及答案(新)