jframe location

时间: 2023-06-29 11:17:55 浏览: 52
JFrame的location属性是用来设置窗口的位置的。它是一个Point对象,表示窗口的左上角在屏幕上的坐标。可以使用JFrame的setLocation方法设置窗口的位置,例如: ``` JFrame frame = new JFrame(); frame.setLocation(100, 100); // 将窗口的左上角放在屏幕上的(100, 100)坐标处 ``` 也可以使用JFrame的getX和getY方法获取当前窗口在屏幕上的坐标,例如: ``` int x = frame.getX(); // 获取窗口左上角在屏幕上的x坐标 int y = frame.getY(); // 获取窗口左上角在屏幕上的y坐标 ```
相关问题

做一个JFrame抖动

你可以使用以下代码让JFrame抖动: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JFrameShakeDemo extends JFrame implements ActionListener { private JButton shakeButton; private Timer shakeTimer; private int numShakes = 0; private final int MAX_SHAKES = 10; private final int SHAKE_DISTANCE = 5; private final int SHAKE_DURATION = 50; // in ms public JFrameShakeDemo() { super("JFrame Shake Demo"); shakeButton = new JButton("Shake!"); shakeButton.addActionListener(this); add(shakeButton, BorderLayout.CENTER); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 200); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == shakeButton) { shakeTimer = new Timer(SHAKE_DURATION, new ActionListener() { int deltaX = 0; int deltaY = 0; long startTime = -1; public void actionPerformed(ActionEvent e) { if (startTime == -1) { startTime = System.currentTimeMillis(); } long elapsed = System.currentTimeMillis() - startTime; if (elapsed < SHAKE_DURATION) { double randX = Math.random() * 2 - 1; double randY = Math.random() * 2 - 1; int dx = (int) (randX * SHAKE_DISTANCE - deltaX); int dy = (int) (randY * SHAKE_DISTANCE - deltaY); setLocation(getX() + dx, getY() + dy); deltaX += dx; deltaY += dy; } else { ((Timer) e.getSource()).stop(); setLocationRelativeTo(null); // reset location numShakes++; if (numShakes < MAX_SHAKES) { shakeTimer.start(); } } } }); shakeTimer.start(); } } public static void main(String[] args) { new JFrameShakeDemo(); } } ``` 这个例子使用了一个定时器来让JFrame抖动。当用户点击“Shake”按钮时,JFrame会随机地在X和Y方向上移动,一直抖动,直到达到指定的最大抖动次数。

在JFrame窗口中加入一个panel然后加入一个JLabel控件,为panel加入ComponentListener,监听JLabel的大小变化,位置变化,是否显示,隐藏。Jabel的名称为谢佳辉

好的,以下是实现这个功能的示例代码: ```java import java.awt.Dimension; import java.awt.Point; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class ComponentListenerDemo extends JFrame { private JPanel panel; private JLabel label; public ComponentListenerDemo() { panel = new JPanel(); label = new JLabel("谢佳辉"); panel.add(label); add(panel); panel.addComponentListener(new MyComponentListener()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setVisible(true); } private class MyComponentListener implements ComponentListener { public void componentResized(ComponentEvent e) { Dimension size = label.getSize(); System.out.println("JLabel 大小变为 " + size.width + " x " + size.height); } public void componentMoved(ComponentEvent e) { Point location = label.getLocation(); System.out.println("JLabel 位置变为 (" + location.x + ", " + location.y + ")"); } public void componentShown(ComponentEvent e) { System.out.println("JLabel 显示"); } public void componentHidden(ComponentEvent e) { System.out.println("JLabel 隐藏"); } } public static void main(String[] args) { new ComponentListenerDemo(); } } ``` 这段代码创建了一个 JFrame,并在其中添加了一个 JPanel,再在 JPanel 中添加了一个 JLabel。我们通过 `addComponentListener()` 方法为 JPanel 添加了一个 ComponentListener 监听器,用于监听 JLabel 的大小变化、位置变化、显示、隐藏等事件。在 MyComponentListener 类中,我们实现了 ComponentListener 接口的方法,分别在事件发生时输出相应的信息。 你可以将这段代码复制到 Eclipse 或其他 Java IDE 中,运行起来看看效果。当你调整窗口大小、移动 JLabel、显示或隐藏 JLabel 时,程序会输出相应的信息。

相关推荐

最新推荐

recommend-type

2层设计-2.4G RF高频信号收发模块硬件(cadence原理图+PADS PCB图+BOM)文件.zip

2层设计-2.4G RF高频信号收发模块硬件(cadence原理图+PADS PCB图+BOM)文件,可供学习及设计参考。
recommend-type

JAVA文件传输(lw+源代码).zip

FTP(File Transfer Protocol)是文件传输协议的简称。 FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。 目前FTP服务器软件都为国外作品,例如Server_U、IIS,国内成熟的FTP服务器软件很少,有一些如(Crob FTP Server),但从功能上看来远不能和那些流行的服务器软件媲美。
recommend-type

语音端点检测及其在Matlab中的实现.zip

语音端点检测及其在Matlab中的实现.zip
recommend-type

Matlab 交互式多模型目标跟踪IMM.zip

Matlab 交互式多模型目标跟踪IMM.zip
recommend-type

numpy试题(2021年整理精品文档).zip

numpynumpy试题(2021年整理精品文档).zip
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解答下列问题:S—>S;T|T;T—>a 构造任意项目集规范族,构造LR(0)分析表,并分析a;a

对于这个文法,我们可以构造以下项目集规范族: I0: S -> .S S -> .T T -> .a I1: S -> S. [$ T -> T. [$ I2: S -> T. I3: S -> S.;S S -> S.;T T -> T.;a 其中,点(.)表示已经被扫描过的符号,;$表示输入串的结束符号。 根据项目集规范族,我们可以构造出LR(0)分析表: 状态 | a | $ ---- | - | - I0 | s3| I1 | |acc I2 | | 其中s3表示移进到状态3,acc表示接受。在分析字符串a;a时,我们可以按照以下步骤进行
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。