首页 > 其他分享 >JFrame一些基础小知识

JFrame一些基础小知识

时间:2023-07-30 09:55:25浏览次数:32  
标签:JFrame 窗口 知识 基础 设置 new 组件 CLOSE

JFrame.setLocationRelativeTo方法

JFrame.setLocationRelativeTo()是一个Java Swing中的方法,它用于将窗口居中显示在屏幕上。

当你调用该方法时,它会将窗口的位置相对于传入的组件进行定位。如果你传入的是null,则窗口将基于屏幕的中心点进行定位。

以下是一些常见的使用方法:

// 将窗口相对于父组件定位
JFrame frame = new JFrame();
frame.setLocationRelativeTo(parentComponent);

// 将窗口居中显示在屏幕上
JFrame frame = new JFrame();
frame.setLocationRelativeTo(null);

注意,在调用JFrame.setLocationRelativeTo()方法之前,你需要先设置JFrame的大小和位置,否则窗口会默认使用它的首选大小和位置。

JFrame.setResizable(false)方法

f.setResizable(false)是Java Swing中的方法,用于设置JFrame窗口的可重置性(Resizable)。设置为false时,用户无法通过拖拽窗口的边框来改变窗口的大小。

该方法的使用示例:

JFrame f = new JFrame("My Frame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400, 300);
f.setResizable(false); // 禁止用户调整窗口大小
f.setVisible(true);

这将创建一个大小为400x300像素,不可调整大小的JFrame窗口。

在有些情况下,你可能希望窗口可以进行调整大小。如果你不调用设置可重置性的方法,窗口默认是可重置的。而调用f.setResizable(true)可以将窗口的可重置性设置为可调整大小。

JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)方法

JFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)是Java Swing中的方法,用于设置JFrame窗口的关闭操作。在窗口关闭时,可以设置程序如何终止运行。

在这个方法中,EXIT_ON_CLOSE是一个静态常量,表示在关闭窗口时,终止程序的运行。

使用示例:

JFrame f = new JFrame("My Frame");
f.setSize(400, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭操作
f.setVisible(true);

在这个例子中,当用户点击窗口的关闭按钮时,程序将自动终止运行。如果你希望在窗口关闭时执行其他操作,可以将JFrame.EXIT_ON_CLOSE替换为JFrame.DISPOSE_ON_CLOSE、JFrame.HIDE_ON_CLOSE等其他常量,或者自定义关闭事件的监听器来实现。

f.setLayout(new BorderLayout()); f.add(tb, BorderLayout.NORTH); f.add(new JPanel(), BorderLayout.CENTER)三个方法

这段代码是在Java Swing中将组件添加到JFrame中的示例代码。首先,f.setLayout(new BorderLayout())设置了JFrame窗口的布局管理器为BorderLayout,这是一个常用的布局管理器,它将组件分别放置到容器的东、南、西、北、中五个方向。

接下来,f.add(tb, BorderLayout.NORTH)将一个命名为tb的组件添加到f窗口的北部,即顶部。然后,f.add(new JPanel(), BorderLayout.CENTER)将一个新的JPanel组件添加到f窗口的中央部分。其中,new JPanel()表示创建一个新的空白JPanel组件,作为容器用于放置其他组件。

整个代码示例如下:

JFrame f = new JFrame("My Frame");
f.setLayout(new BorderLayout());

// 在窗口的顶部放置一个命名为tb的组件
JComponent tb = new JComponent() {};
f.add(tb, BorderLayout.NORTH);

// 在窗口的中央部分添加一个空白的JPanel组件
f.add(new JPanel(), BorderLayout.CENTER);

f.setSize(400, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
f.setVisible(true);

这段示例代码中,JFrame的大小设置为400x300像素,关闭操作设置为EXIT_ON_CLOSE,设置可见为true,这样就能看到添加到JFrame中的组件了。

JFrame.setVisible(true)方法

f.setVisible(true)是Java Swing中的方法,用于设置窗口的可见性。

在Java Swing中,当一个窗口被创建后,默认情况下是不可见的。使用f.setVisible(true)可以将窗口设置为可见状态,这样用户就可以看到并与之交互。当窗口被设置为可见后,用户可以进行拖拽、关闭等操作。

使用示例:

JFrame f = new JFrame("My Frame");
f.setSize(400, 300);

// 在这里添加其他组件...

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true); // 将窗口设置为可见状态

在这个例子中,JFrame窗口被创建后,先设置了窗口的大小,然后添加了其他组件,接着设置了关闭操作,并最终使用setVisible(true)将窗口设置为可见的状态。

如果你希望将窗口设置为不可见,可以使用f.setVisible(false)。

标签:JFrame,窗口,知识,基础,设置,new,组件,CLOSE
From: https://www.cnblogs.com/explore-03/p/17591034.html

相关文章

  • 三个编程思想:面向对象编程、面向接口编程、面向过程编程【概念解析系列_1】【C# 基础
    〇、前言对于.Net中的编程思想还是十分重要的,也是编码出高效的程序的基础!在使用之前了解其本质,那么用起来就游刃有余。下面来简单对比下三个编程思想,看下它们都是什么,它们之间又有什么关系。一、对象、接口、过程稍等,在介绍主角之前呐,先来了解下它们思想的基础是怎么回事。......
  • 抽象类 vs 接口【概念解析系列_2】【C# 基础】
    〇、前言抽象类和接口的相似之处还是很多的,但是它们的侧重点不同,本文将简单梳理下。一、简介与示例1.1抽象类抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似于“模板”的作用,目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创......
  • F5 LTM 知识点和实验 5-健康检测
    第五章:健康检测监控的分类:地址监控(3层)服务监控(4层)内容监控(7层)应用监控(7层)性能监控(7层)路径监控(3、4、7层)三层监控:三层监控可以帮助bipip系统通过检查网络是否可达监视资源。比如使用icmpecho,向监控节点发送icmp_echo报文,如果接收到响应,则认为节点可用。但是三层检测有......
  • 17-数仓基础理论
    1.数据仓库数据仓库(DataWarehouse,简称数仓、DW)是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(DecisionSupport)。数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统;同时数据仓库自身也不需要“消费”任何的......
  • 产品设计基础
    目录一、初识产品产品开发整体流程产品技术中心核心人员产品经理岗位职责常见误区产品经理能力素质专业技能综合素质常用工具二、问题思考维度抓住核心用户为什么要抓住核心用户核心用户特征如何抓住核心用户场景化分析场景五要素场景化分析方法场景化分析方法应用需求收集与辨别......
  • pandas模块--------------------基础篇学习
    1.读取Excel数据Python通过pandas库可以轻松地读取Excel数据。pandas库是一个专门用于数据分析和处理的库,它可以将Excel中的数据读取为DataFrame格式,便于进行后续的数据分析和操作。importpandasaspddata=pd.read_excel('new.xlsx')print(data,type(data))2.同样是......
  • PyTorch基础知识-新手笔记
    NumPy与TensorTensor为神经网络界的NumPy,与NumPy相似。相同之处:二者均可共享内存,它们之间的转换非常方便和高效。不同之处:NumPy会把ndarray放在CPU中加速。  Tensor会把ndarray放在GPU中加速。PyTorch中的Tensor可以是零维(又称为标量或一个数)、一维、二维及多维的数组。标量(s......
  • 10道Java基础面试题
    以下是Java基础面试题,相信大家都会有种及眼熟又陌生的感觉、看过可能在短暂的面试后又马上忘记了。JavaPub在这里整理这些容易忘记的重点知识及解答,建议收藏,经常温习查阅。看看这些面试题你会几道@[toc]1.instanceof关键字的作用instanceof是Java的保留关键字。它的作用是测......
  • 《面试1v1》Kafka基础
    面试官:嗨,欢迎来到我们的面试!今天我们要聊一聊Kafka基础。你对Kafka有了解吗?候选人:嗨!当然有啦,Kafka是一个分布式流处理平台,用于高吞吐量、低延迟的数据传输和处理。它就像是一个强壮的邮递员,可靠地将消息递送给不同的系统。面试官:很好!那你能给我解释一下Kafka的消息发布和订阅模......
  • 【webpack系列】从基础配置到掌握进阶用法
    前言本篇文章将介绍一些webpack的进阶用法,演示内容继承自上一篇文章的内容,所以没看过上一篇文章的建议先学习上一篇内容再阅读此篇内容,会更有利于此篇的学习~文件指纹文件指纹指的是打包输出的文件名后缀,一般用来做版本管理、缓存等webpack的指纹策略有三种:hash、chunkhash、content......