首页
学习
活动
专区
工具
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.8K70
  • java.awt.swing菜单组件

    在应用系统开发中,菜单组件是经常使用的组件,菜单组件包括下拉式菜单和弹出式菜单。下拉式菜单包含若干个菜单项,每个菜单项在用户单击时引发一个动作,菜单可以看做一组层次化管理的命令集合。...,点击“退出”窗体立即关闭。...提示:快速访问符是一种快捷键,通常在按下 Alt 键和某个字母时激活。例如,常用的 Alt+F 是“文件” 菜单的快速访问符。...例12-14运行结果 图12.16中,运行程序弹出JFrame窗口,在窗口中点击右键,会弹出菜单栏,点击退出,窗口成功关闭。...例12-14中,先创建了JFrame窗体,然后创建菜单、菜单项,在“退出”的菜单项中添加事件监听,点击“退出”窗体就会关闭,最后为JFrame窗体添加鼠标点击事件监听器,实现右键弹出菜单的效果。

    13910

    【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.4K20

    如何在Java中使用Table

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

    2.2K40

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

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

    60210

    Java编程之GUI教程 JPanel面板和JScrollPane

    ​​https://edu.51cto.com/course/32948.html​​ JPanel是一种没有边框,不能被移动、放大、缩小或关闭的非顶层容器,默认情况下是透明的,可以使用setOpaque...,单位是像素 表12.3中列举了JPanel类常用方法,接下来演示JPanel的使用,如例12-3所示。...jFrame=new JFrame("JPanel框架"); 7 jFrame.setSize(300,200); 8 jFrame.setLocation(500,400...它由下列部分组成:一个ViewPort、可选的垂直和水平滚动条、可选的行和列的头部,以及ViewPort对应显示的组件。...例12-4运行结果 案例12-4中,在JTextArea文本区域组件不断输入内容回车,当内容超出滚动面板宽度和高度的时候,JScrollPane会出现横向和纵向滚动条。

    16910

    菜单与JApplet组件

    你需要指定它的父组件和位置。如: popup.show(panel,x,y); 通常当用户点击某个鼠标键时,弹出菜单就会出现,这就是所谓的弹出触发 器。在Windows中,弹出出发器通常是鼠标右键。...,而加速器是在不打开菜单的情况下选择菜单项快捷键。...加速器键并不实际打开菜单。它知识直接激活同菜单关联的动作事件而已。 ​启用和禁用菜单项​ 有时候,一个特定的菜单项可能只在某些环境中可用。例如:当一个文档以只读方式打开时,Save菜单就没意义了。...禁止执行另一程序和不允许调用本地方法限制了Applet启动未经JVM检查的代码。对Socket的限制则禁止了与另一个可能有危害性的程序的通信。...类也是Panel类的子类,所以也会调用paint()方法 n 当浏览器最小化的时候调用stop()方法 n 当浏览器显示的时候又会调用start()方法 n 当浏览器关闭的时候调用

    6610

    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.6K10

    Java中的Lambda表达式与函数式接口详解

    ; System.out.println(getString.get()); }}三、Lambda表达式与函数式接口的结合使用Lambda表达式和函数式接口经常一起使用,特别是在集合框架中...4.1 集合框架中的Lambda表达式Java 8对集合框架做了增强,特别是引入了Stream API。...通过理解Lambda表达式的高级特性,我们可以更好地掌握如何在复杂的场景中使用它们。...5.2 变量作用域和闭包在Lambda表达式中,Lambda可以访问它所在方法中的局部变量。这种现象叫做闭包(Closure)。不过,Lambda表达式只能访问final或有效final的局部变量。...通过合理地运用Lambda表达式,开发者能够在编写Java代码时,提升代码的可读性、可维护性和性能。

    17701

    Java 内部类种类及使用解析

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

    1.2K50

    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.6K20

    【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

    Java 内部类种类及使用解析

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

    47220

    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.9K20

    金九银十: 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.6K31

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

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

    1.2K40
    领券