从 JFrame 中删除面板后如何处置 JPanel

2023-12-12

我创建了 2 个 Jpanel,它将添加到 JFrame 中。
首先将一个 JPanel 添加到 JFrame 中。
我使用了 JFrame 的“add()”方法来添加 JPanel。

JPanel panel = new JPanel();
JFrame j = new JFrame();
j.getContentPane().add(panel);

JFrame 上设置了一个 JMenuBar。
将 2 个 JMenuItem 添加到 JMenu,最后将其添加到 JMenuBar。
单击第一个 JMenuItem 时,将从 JFrame 中删除前面的面板,并将另一个 JPanel 添加到 JFrame 中。 第二个 JMenuItem 执行相反的操作,删除早期的 JPanel 并放置较新的 JPanel。

JMenuItem a = new JMenuItem("p1");
a.addActionListener(new...
{
Frame2 ob = new Frame2();//another class which adds components on the panel.
JPanel p1 = ob.getPanel();//method used to return the JPanel from another class
j.getContentPane().remove(0);
j.getContentPane().add(p1);
});


JMenuItem b = new JMenuItem("p2");
a.addActionListener(new...
{
Frame3 ob2 = new Frame3();//another class which adds components on the panel.
JPanel p2 = ob2.getPanel();//method used to return the JPanel from another class
j.getContentPane().remove(0);
j.getContentPane().add(p2);
});

我现在面临的问题是,面板在移除时不会被丢弃,并且面板在内存中的某个位置占用内存。
虽然之前的面板不可见,而新的面板可以看到,但是之前的面板(不可见面板)占用的内存可以在任务管理器中看到。
当我在面板之间切换时,它们占用的内存会不断增加,因为每次都会创建面板的新实例。 我想在删除时处置面板,但没有像 JFrame 的 dispose() 方法那样处置 JPanel 的方法。


JFrame是窗口,JPanel是容器。当 JPanel 实例失去引用时,它将被垃圾回收。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 JFrame 中删除面板后如何处置 JPanel 的相关文章

  • Java - 因内存不足错误而关闭

    关于如何最好地处理这个问题 我听到了非常矛盾的事情 并且陷入了以下困境 OOME 会导致一个线程崩溃 但不会导致整个应用程序崩溃 我需要关闭整个应用程序 但不能 因为线程没有剩余内存 我一直认为最佳实践是让它们离开 这样 JVM 就会死掉
  • 使用 JDBC 获取 Oracle 11g 的最后插入 ID

    我是使用 Oracle 的新手 所以我将放弃之前已经回答过的内容这个问题 https stackoverflow com questions 3131064 get id of last inserted record in oracle
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • Logback:SizeAndTimeBasedRollingPolicy 不遵守totalSizeCap

    我正在尝试以一种方式管理我的日志记录 一旦达到总累积大小限制或达到最大历史记录限制 我最旧的存档日志文件就会被删除 当使用SizeAndTimeBasedRollingPolicy在 Logback 1 1 7 中 滚动文件追加器将继续创建
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • 您建议使用哪种压缩(GZIP 是最流行的)servlet 过滤器?

    我正在寻找一个用于大容量网络应用程序的 GZIP servlet 过滤器 我不想使用容器特定的选项 要求 能够压缩响应负载 XML Faster 已在大批量应用的生产中得到验证 应适当设置适当内容编码 跨容器移植 可选择解压缩请求 谢谢 我
  • FileNotFoundException - Struts2 文件上传

    Strange FileNotFoundException使用Struts2上传文件时 这是 JSP 的一部分
  • 如何在java Spring Boot中实现通用服务类?

    我有许多具有重复代码的服务 我想知道如何实现通用服务 以便我的所有服务都可以扩展它 服务接口示例 重复代码 Service public interface IUserService List
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • org/codehaus/plexus/archiver/jar/JarArchiver(不支持的major.minor版本49.0)-Maven构建错误

    下午大家 我在尝试构建项目时收到上述错误 我很确定这与使用 Java 1 6 编译的 Maven 最新更新有关 而我们尝试构建的项目是 1 4 项目 在此之前的插件工作没有问题 因此我将以下内容添加到 POM xml 文件中以尝试强制使用现
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 如何通过 Android 按钮单击运行单独的应用程序

    我尝试在 Android 应用程序中添加两个按钮 以从单独的两个应用程序订单系统和库存系统中选择一个应用程序 如图所示 我已将这两个应用程序实现为两个单独的 Android 项目 当我尝试运行此应用程序时 它会出现直到正确选择窗口 但是当按
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • 基于 Spring Boot 的测试中的上下文层次结构

    我的 Spring Boot 应用程序是这样启动的 new SpringApplicationBuilder sources ParentCtxConfig class child ChildFirstCtxConfig class sib

随机推荐

  • 动画(可能切换类)不起作用

    因此 我正在制作一个网站 其中有几个 div 当用户单击特定按钮或导航项时 这些 div 应该从右侧 左侧或顶部滑动 然而 这些都不起作用 当我单击应该使它们滑动的按钮时 所有 div 都不会滑动 我使用纯 JavaScript 来执行这些
  • BULK INSERT SQL SERVER 的乐趣 - 指定代码页的类型不匹配或无效字符

    我正在插入如下所示的数据 AA00000111 PSNH OT J SMITH 03 01 2011 10 11 1957 42 Male Hartford NH Lorazepam Benzodiazepines C AA00000151
  • JAR 文件中带有图像的 Java 工具提示

    我正在使用 JFreeChart 通过实现来自定义图表的工具提示XYToolTipGenerator界面 作为generateToolTip 方法应该返回一个字符串 这是我在工具提示中显示图像所做的操作 Override public St
  • 如何查看我正在使用哪个版本的 Swift?

    我刚刚在 Xcode 中创建了一个新的 Swift 项目 我想知道它使用的是哪个版本的 Swift 如何在 Xcode 或终端中查看我的项目中使用的 Swift 版本 我所做的是在终端中说 xcrun swift version Xcode
  • 如何使用Oracle全局临时表?

    我正在尝试使用 Oracle 全局临时表 而不在数据库中物理创建表 以下代码不起作用 有人可以解释一下使用全局临时表的正确方法吗 declare global temporary table my temp table column1 nu
  • 从时间跨度(例如“15 分钟”或“2 秒”)到“00:15:00”或“00:00:02”

    我正在搜索 R 函数的帮助 该函数可以将时间跨度 例如 15 分钟 或 1 小时 或 6 秒 或 1 天 转换为日期时间对象 如 00 15 00 或 01 00 00 或 00 00 06 或 1960 01 02 00 00 00 不确
  • 如何使用Java向mysql插入数据

    我正在尝试使用 Java 将数据插入 mysql 数据库 我正在使用以下代码从数据库中获取数据 并且工作正常 import java sql Connection import java sql DriverManager import j
  • 将双精度型格式化为小数点后两位

    我一直试图将打印出来的答案保留到小数点后两位 所有涉及的数学都必须保持两位小数的格式 我已经尝试了一些事情 但我不确定要改变什么才能使这项工作正常进行 double pdt1 239 99 double pdt1Total double p
  • 使用 Python subprocess.call() 启动 ncurses 进程

    我正在尝试致电 ct ng http crosstool ng org 来自 SCons SConstruct 脚本 所以基本上来自 Python 使用以下方法 ret subprocess call mnt build pw build
  • 文件处理 - 再次从头开始读取[重复]

    这个问题在这里已经有答案了 我需要创建一个对象数组来保存文件中的记录 我不知道数组的大小 为此 我必须首先找到文件中的行数 使用行数可以确定数组的大小 现在我需要从头开始再次读取文件 以将文件中的记录存储在数组对象中 这就是我正在挣扎的地方
  • 如何获取php中具有特定文件夹名称的所有子目录?

    我发现我可以在 php 中使用以下代码获取该文件夹的所有子目录 address new RecursiveIteratorIterator new RecursiveDirectoryIterator root RecursiveDirec
  • 如何避免依赖注入构造函数的疯狂?

    我发现我的构造函数开始看起来像这样 public MyClass Container con SomeClass1 obj1 SomeClass2 obj2 随着参数列表的不断增加 既然 Container 是我的依赖注入容器 为什么我不能
  • 我如何使用 AngularJS 和serializeJSON cfquery

    我想看看 AngularJS 带有 cf 后端 我有以下代码 它提取一个名为 getIndex 的常规 cfquery 该查询每行提取五行列 firstName lastName var theQuery
  • 如何存储 Android 对话框中的编辑文本数据?

    我已经设置了一个包含多个编辑文本的警报对话框 但我不确定如何存储在警报对话框中输入的值 通常我可以这样做 final EditText input new EditText this alert setView input Editable
  • 如何在Java中互相使用两个类的方法?

    我环顾四周 只找到了一个答案 至少对我来说还不够清楚 我正在使用 GUI 构建一个非常基本的聊天应用程序 并将 GUI 与连接部分分开 现在我需要从服务器类中的 GUI 调用一种方法 反之亦然 但我不太明白该怎么做 即使是 这个 部分代码如
  • Pyinstaller 和 PyQt5 macOS Mojave 兼容性问题

    我的应用程序是使用 Pyinstaller 创建的 在我从 High Sierra 升级到 Mojave 之前一直运行良好 为了演示这个问题 我创建了一个简单的应用程序 主窗口只有一个按钮 当您按下按钮时 其文本应更改为 请稍候 10 秒钟
  • 分页不接受 dict 作为数据 - 不可哈希类型

    我正在尝试使用 Django 分页分页文档 但我收到此错误 TypeError at unhashable type 这基本上是因为我使用字典作为对象而不是查询集 我想知道是否有办法将我的字典变成可哈希对象 这是我在模板中的字典 for k
  • 从对象中提取名称与测试匹配的属性

    我有一个 props 对象 它将包含一组未知的属性 我想根据它们的前缀提取其中一些属性 我有一些有用的东西 太棒了 但看起来很啰嗦 我想知道是否有更惯用的方法 const props bingo 1 bongo 2 mingo 3 bang
  • R 的 bigvis 包不适用于 R 版本 3.0.1 吗?

    我正在开发一个旨在处理大数据的应用程序 但由于绘图点数量巨大 无法以有用的方式绘制数据图表 我最初的想法是创建一个小算法 根据数据的大小 将数据点分为大约 30 个子集 并取这些子集中所有点的平均值 顺便说一下这个实现的错误是什么 然后我了
  • 从 JFrame 中删除面板后如何处置 JPanel

    我创建了 2 个 Jpanel 它将添加到 JFrame 中 首先将一个 JPanel 添加到 JFrame 中 我使用了 JFrame 的 add 方法来添加 JPanel JPanel panel new JPanel JFrame j