首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在关闭框架和打开另一个框架时保存JFrame变量

在关闭一个框架并打开另一个框架时,如果需要保存JFrame变量,可以使用以下方法:

  1. 在关闭框架时,将需要保存的JFrame变量的状态或数据保存到一个临时变量中。可以使用JFrame的getState()方法获取框架的状态,然后将其保存到一个变量中。
  2. 在打开另一个框架时,将之前保存的JFrame变量的状态或数据重新加载到新的框架中。可以使用JFrame的setState()方法将之前保存的状态重新设置到新的框架中。

下面是一个示例代码:

代码语言:java
复制
import javax.swing.*;

public class Main {
    private static JFrame frame1;
    private static JFrame frame2;
    private static int frame1State;

    public static void main(String[] args) {
        // 创建第一个框架
        frame1 = new JFrame("Frame 1");
        frame1.setSize(300, 200);
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建第二个框架
        frame2 = new JFrame("Frame 2");
        frame2.setSize(300, 200);
        frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 关闭第一个框架时保存状态
        frame1.addWindowListener(new java.awt.event.WindowAdapter() {
            @Override
            public void windowClosing(java.awt.event.WindowEvent windowEvent) {
                frame1State = frame1.getState();
            }
        });

        // 打开第二个框架时加载状态
        frame2.addWindowListener(new java.awt.event.WindowAdapter() {
            @Override
            public void windowOpened(java.awt.event.WindowEvent windowEvent) {
                frame2.setState(frame1State);
            }
        });

        // 显示第一个框架
        frame1.setVisible(true);
    }
}

在上述示例中,我们创建了两个JFrame对象:frame1和frame2。当关闭frame1时,我们将其状态保存到frame1State变量中。当打开frame2时,我们将frame1State的值设置为frame2的状态,以实现保存和加载JFrame变量的状态。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JAVA学习中Swing部分JDialog对话框窗体的简单学习

; import javax.swing.JLabel; import javax.swing.WindowConstants; /**  * 1:JDialog窗体Swing组件中的对话框,  *...JDialog的功能就是是从一个窗体中弹出另一个窗体,就像是在使用浏览器弹出的确定对话框一样  *  * 2:JDialog窗体JFrame窗体类似,在使用时也需要调用getContentPane...);//将按钮属性添加到容器中         //设置容器里面的属性特点         container.setBackground(Color.blue);         //设置容器的框架结构特性...MyFrame();         fm.MyFrame();     } } class MyJDialog extends JDialog{     //本实例代码可以看到,JDialog窗体JFrame...窗体形式基本相同,甚至在设置窗体的特性     //时调用的方法名称都基本相同,设置窗体的大小,设置窗体的关闭状态等     public MyJDialog(MyFrame frame){//定义一个构造方法

1.7K70

【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 )

一、Canvas 中绘制超大图片要点 ---- 1、设置 JFrame 窗口自动关闭 创建 JFrame 窗口后 , 通过调用 JFrame#setDefaultCloseOperation 可以设置窗口自动关闭...; // 创建 JFrame 窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮...关闭窗口并退出应用 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2、获取并绘制图片 在 AWT 中 , 使用 Toolkit.getDefaultToolkit..., 记录按下的位置 , 保存到 startX startY 变量中 , 这两个变量每次鼠标按下都会更新 ; // 为组件设置鼠标监听事件 addMouseListener...窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮 关闭窗口并退出应用

1.3K20

何在Java中使用Table

在Java中,表用于将数据排列成列行。列是表中水平排列的空间,而行是表中垂直排列的空间。列行之间的交点称为单元格,用于保存单条数据。...如何在Java中创建表 要创建表,需要创建JTable类的实例。...您需要在其构造函数中为要构造的表提供两个参数(rowcolumn),如以下示例代码段所示: JTable table = new JTable (row, column); rowcolumn的值可以由两个整数值组成...此外,在向用户演示,所有数据都被视为字符串。 另一个值得关注的问题是,如果您在数据库对象中查询特定值,则必须将所有值复制到数组或向量中。 为了避免这些问题,您可以使用模型创建表格。...上面显示的代码示例将表直接添加到JFrame容器中。但是,您可以将表添加到滚动窗格中,这样当数据超出容器,用户可以轻松浏览数据。

2K40

JAVA贪吃蛇小游戏源代码系列

贪吃蛇小游戏运行结果如下: 启动界面: 运行界面: 重启界面: 源代码框架如下: 注:在运行程序的时候,得重新设计窗体的大小,以适合自己的电脑,其次,图片类音乐类都保存在我自己电脑的...F盘的相应路径下,在运行程序的时候需要将图片类音乐类保存到自己的本地磁盘路径中,然后在程序中改变路径。...* 程序启动的界面包括背景图片进入运行界面的Button,点击按钮之后程序关闭启动界面进入到运行界面, * 运行界面设置在SnakeGame类中,Test类大体设置了运行界面的大小可见与否等。...ActionListener { public static RuleSetViewerDialog frame1; static JFrame frame = new JFrame( );...Setting(); public Start(){ //设置启动界面 addFrame();//添加框架

55510

java swing一篇轻松学习(高考后可以自学)

方法名称 概述 getContentPane() 返回此窗体的 contentPane 对象 getDefaultCloseOperation() 返回用户在此窗体上单击“关闭”按钮执行的操作 setContentPane...(Container contentPane) 设置 contentPane 属性 setDefaultCloseOperation(int operation) 设置用户在此窗体上单击“关闭”按钮默认执行的操作...setDefaultLookAndFeelDecorated (boolean defaultLookAndFeelDecorated) 设置 JFrame 窗口使用的 Windows 外观(边框、...","打开"); toolBar.add(button); button=makeNavigationButton("test",SAVE,"保存当前文件","保存");...column 位置的单元格值 本文虽然没有写数据库操作,但是后面会有一篇图形化框架的操作,我会在那一篇文章里搞定的。

9.3K10

【Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布中绘制的背景图像 ( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

// 根据按键计算出缩放比例 scale = e.getKeyCode() - 96; // 基于鼠标位置比例...画布 ( 鼠标滚轮事件监听器 MouseWheelListener ) 博客中 , 新增鼠标滚轮缩放画布示例 , 但是使用鼠标拖动 , 拖动的效果也随之缩放, 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小...@Override public void mouseWheelMoved(MouseWheelEvent e) { // 保存当前的鼠标位置及比例...startX = e.getX(); startY = e.getY(); // 保存当前的鼠标位置及比例...窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮 关闭窗口并退出应用

1.8K20

何在 Spring Boot 中 读写数据

何在 Spring Boot 中 读写数据 1.2 JPA 规范 ORM映射元数据:JPA支持XML注解两种元数据形式。...如何在 Spring Boot 中 读写数据 2.1 引入依赖包 在 Spring Boot 应用中,只需要打开 pom.xml 加入一个 Spring Data JPA 依赖即可。...如何在 Spring Boot 中 读写数据 (7)@Transient 类变量注解,表示该变量不是一个到数据库表的字段映射。...如何在 Spring Boot 中 读写数据 cascade 属性用于指定级联策略: 策略 | 说明 --- | --- CascadeType.PERSIST | 级联持久化;保存父实体,也会同时保存子实体...CascadeType.MERGE | 级联合并;修改了子实体,保存父实体也会同时保存子实体(常用)。 CascadeType.REMOVE | 级联删除;删除父实体,会级联删除关联的子实体。

15.8K10

java swing入门教程_java swing基础(菜鸟教程学习)

Java Swing介绍 1.Swing是一个为java世纪的GUI工具包 2.Swing是JAVA基础类的一部分 3.Swing包括了图形用户界面(GUI)器件:文本框,按钮,分隔窗格表 4个器件...创建一个窗口对象frame,然后设置关闭JFrame frame = new JFrame(“Login Example”); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE...frame.add(panel); //调用用户定义的方法并添加组件到面板 placeComponents(panel); //好的,日常设置界面可见 frame.setVisible(true); } //基本框架完成...JFrame java的GUI程序的基本思路是以JFrame为基础,说白了就是窗体屏幕它是屏幕上window的对象,能够最大化,最小化,关闭。...嗯 虽然大部分菜鸟驿站的照抄大半,但有自己的理解注入,所以原创吧原创吧。

2.4K20

Java 内部类种类及使用解析

一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分。...类定义加上static关键字。   不能外部类有相同的名字。   被编译成一个完全独立的.class文件,名称为OuterClass$InnerClass.class的形式。...,但是定义不用static修饰。   ...成员内部类和静态内部类可以类比为非静态的成员变量和静态的成员变量。   成员内部类就像一个实例变量。 它可以访问它的外部类的所有成员变量方法,不管是静态的还是非静态的都可以。   ...像局部变量一样,不能被public, protected, privatestatic修饰。   只能访问方法中定义的final类型的局部变量

1.2K50

【PyUnit】一、如何让测试用例按序执行

PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写运行可重复的测试。...PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试回归测试。 PyUnit 具有如下好处: 可以使测试代码与产品代码分离。...PyUnit具有如下特征: 使用断言方法判断期望值实际值的差异,返回 bool 值。 测试驱动设备可使用共同的初始化变量或实例。 测试包结构便于组织集成运行。...例:下图打开微信/支付宝关闭微信/支付宝是相关联的case,因为没有按照顺序执行,导致两个关闭的case失败。 ?...手动修改函数名称 在命名,对函数名称进行编号,test后紧跟数字编号,根据ASCII码排序保证顺序执行,示例如下图: ?

1.1K40

金九银十: 50 个JS 必须懂的面试题为你助力

问题22:Attribute Property之间有什么区别 Attribute——提供关于元素的更多细节,id、类型、值等。...如果在浏览器端生成Cookie,默认是关闭浏览器后失效 除非被清除,否则永久保存 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 一般为 5MB 与服务器端通信...问题 31: 列出一些JS框架 JS框架是用JavaScript编写的应用程序框架,它与控制流中的JS库不同,一些最常用的框架是: Vue Angular React 问题 32: window 与...当使用严格模式,不能使用隐式声明的变量,或为只读属性赋值,或向不可扩展的对象添加属性。...转义字符()用于处理特殊字符,单引号、双引号、撇号&号,在字符前放置反斜杠使其显示。 :document.write("I am a \"good\" boy")

6.5K31

Java 内部类种类及使用解析

一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分。    ...类定义加上static关键字。    不能外部类有相同的名字。    被编译成一个完全独立的.class文件,名称为OuterClass$InnerClass.class的形式。    ...,但是定义不用static修饰。    ...成员内部类和静态内部类可以类比为非静态的成员变量和静态的成员变量。    成员内部类就像一个实例变量。    它可以访问它的外部类的所有成员变量方法,不管是静态的还是非静态的都可以。    ...像局部变量一样,不能被public, protected, privatestatic修饰。    只能访问方法中定义的final类型的局部变量

42420

Java中的屏幕共享

概述该项目由两部分组成:Node.js 上的服务器两个 Java 应用程序。服务端通过WebRTС 服务器来实现。这一部分包含用于连接到服务器启动屏幕共享会话的 JavaScript 代码。...当流媒体开始捕获,我们将其屏幕视图作为视频流接收。为了显示它,我们在接收器端使用内置的 HTML5 视频播放器。打开两个浏览器窗口查看是否正常。该项目的源代码可在GitHub 上获得。...mainFrame -> mainFrame.executeJavaScript("startScreenSharing()"));});复制代码默认情况下,当网页想要从屏幕捕获视频,...screen = sources.screens().get(0); tell.selectSource(screen, AudioCaptureMode.CAPTURE);});复制代码让我们保存...结论在本文中,展示了如何在一个 Java 应用程序中共享屏幕并使用 JxBrowser 在另一个应用程序中显示它。 我创建了一个可以共享屏幕的简单 JavaScript 应用程序。

1.8K20

Android 中常见的内存泄漏

1.1 静态变量引用Activity对象 通过静态变量引用Activty对象,会导致Activty对象所占内存内漏。...另外,加入你当前的Activty启动另一个Activty的代码使用率也特别高。为了使得参数尽可能的少,你提供setFirstActivty,保存当前的Activty。...另外,如果集合中保存的对象又引用到了其他的大对象,超长字符串、Bitmap、大数组等,很容易造成OOM。 3 资源对象没关闭造成内存泄漏 当我们打开资源,一般都会使用缓存。...比如读写文件资源、打开数据库资源、使用Bitmap资源等等。当我们不再使用时,应该关闭它们,使得缓存内存区域及时回收。虽然有些对象,如果我们不去关闭,它自己在finalize()函数中会自行关闭。...但是这得等到GC回收关闭,这样会导致缓存驻留一段时间。如果我们频繁的打开资源,内存泄漏带来的影响就比较明显了。

76180

Java 知识点 复习备考

( str ) ,在转换的过程可能产生 类型转换异常 基本数据类型的数据 basicData  转换成字符串对象的方法:String.valueOf ( basicData ) 对于集合框架...对于 JFrame JWindow 默认的布局管理器是边界布局 BorderLayout 对于 JPanel 默认的布局管理器为 FlowLayout String StringBuffer...,可以覆盖此方法提供的垃圾收集的其他资源的回收例如关闭文件等 抽象类接口的相同点:一、都不能直接实例化,抽象类型变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类变量...调用发生保存被调用函数的局部变量形参。...什么继承:通过必要的说明就能够实现某个类无需重新定义就能拥有另一个类的某些属性方法,并把这种关系称为继承。先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。(是多层继承!

25620

贪吃蛇大作战java代码_java做贪吃蛇需要用到哪些知识

通过本游戏的开发,达到学习Java技术熟悉软件开发流程的目的。 总体需求 本系统主要是完成贪吃蛇游戏的基本操作,用户可自己练习娱乐。...(2)静态UI设计(包括小蛇,食物,游戏区域标题区域)。 (3)使用键盘监听事件定时器实现小蛇的移动。 (4)小蛇与食物碰撞的实现。...(5)定义变量存放小蛇长度,遍历数组实现小蛇身体的增加功能。 (6)退出条件:当游戏积分到达指定分数,游戏退出。...在使用Java编写该项目遇到了很多问题,在解决问题,可以对java的面向对象编程有更加深入的理解认识。 ---- 本项目在一定程度上还有缺陷,仅用于初学者学习,欢迎各位指正。...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

89120

使用 PerfCollect 跟踪 .NET 应用程序

然后使用这些数据分析各种运行时组件( GC、JIT 线程池)的行为。 最新版本的 .NET Core Linux 性能工具支持自动解析框架代码的方法名称。...有关详细信息,请参阅解析框架符号。 若要解析本机运行时 DLL 的方法名称(例如 libcoreclr.so),perfcollect 将在转换数据为其解析符号,但前提是存在这些二进制文件的符号。...使用 TraceCompass 打开跟踪文件 Eclipse TraceCompass 是另一个可用于查看跟踪的选项。...unzip myTrace.trace.zip perfcollect 将它收集的 LTTng 跟踪保存为 CTF 文件格式,位于 lttngTrace 的子目录中。...解析框架符号 收集跟踪,需要手动生成框架符号。 它们不同于应用级别符号,因为框架是预编译的,而应用代码是即时编译的。

1.1K20

50 个JS 必须懂的面试题为你助力金九银十

问题22:Attribute Property之间有什么区别 Attribute——提供关于元素的更多细节,id、类型、值等。...如果在浏览器端生成Cookie,默认是关闭浏览器后失效 除非被清除,否则永久保存 仅在当前会话下有效,关闭页面或浏览器后被清除 存放数据大小 4K左右 一般为 5MB 与服务器端通信 每次都会携带在HTTP...undefined的变量是在程序中声明但未赋予任何值的变量,如果程序试图读取未定义变量的值,则返回undefined的值。 问题 31: 列出一些JS框架 ?...JS框架是用JavaScript编写的应用程序框架,它与控制流中的JS库不同,一些最常用的框架是: Vue Angular React 问题 32: window 与 document 的区别: window...转义字符(\)用于处理特殊字符,单引号、双引号、撇号&号,在字符前放置反斜杠使其显示。

4.4K30

2020年度最常见的Spring Boot面试题【附解析】

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,关闭数据源自动配置功能:@SpringBootApplication(exclude{DataSourceAutoConfiguration.class...11、如何在自定义端口上运行 Spring Boot 应用程序? 12、如何实现 Spring Boot 应用程序的安全性?...16、如何在 Spring Boot 中禁用 Actuator 端点安全性? 17、我们如何监视所有 Spring Boot 微服务? 18、什么是 WebSockets?...将所有微服务的 session 统一保存在 Redis 上,当各个微服务对 session 有相关的读写操作,都去操作 Redis 上的 session 。...在 Spring Boot 中使用定时任务主要有两种不同的方式,一个就是使用 Spring 中的 @Scheduled 注解,另一个则是使用第三方框架 Quartz。

1.5K10
领券