从 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 的相关文章

  • 光学标记阅读器的开源库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要一个用于光学标记读取 OMR 的开源库 有这样的库吗 我想在我的 java 应用程序中使用这个库 zxing 可能对你有用 http
  • 使用 Jersey Client 忽略自签名 ssl 证书 [重复]

    这个问题在这里已经有答案了 我正在使用 Jersey 客户端库对 jboss 上运行的其余服务运行测试 我使用自签名证书在服务器上正确设置了 https 在本地主机上运行 但是 每当我使用 https url 运行测试时 都会收到以下错误
  • 在 Java 中跨平台地播种随机生成器,无需时间

    我几乎同时在两个线程上初始化两个随机数生成器 并且我希望这两个生成器的行为完全不同 我会打电话Random nextInt 7 经常一个接一个地在两台发电机上运行 使用System currentTimeMillis 这不是一个好主意 因为
  • 为什么 DragHandler exportAsDrag 禁用我的 MouseMotionListener?

    我想实现一个简单的 JComponent 拖放 并带有 O Reilly Swing Hacks 的预览 我的问题是 如果 TransferHandler 启动 Drag MouseMotionListener 停止执行 mouseDrag
  • 在 Eclipse 中跨文件搜索注释掉的代码

    有没有一种快速方法可以在 Eclipse 中查找 Java 文件中所有注释掉的代码 也许是搜索中的任何选项 或者任何可以执行此操作的附加组件 它应该只能找到被注释掉的代码 而不是普通的注释 在 Eclipse 中 我只是在打开正则表达式复选
  • Spring Rest POST Json RequestBody 不支持内容类型

    当我尝试使用 post 方法发布新对象时 RequestBody 无法识别 contentType Spring 已经配置完毕 POST 可以与其他对象一起使用 但不能与这个特定对象一起使用 org springframework web
  • Infinispan 复制缓存不复制对象以供读取

    我们正在尝试在 Openshift 内的 Wildfly 11 上运行的两个 infinispan 节点上安装复制缓存 当我们在一个节点上写入一个对象时 它不会显示在另一节点上进行读取 启动时 节点在集群中连接 并且可以看到彼此 如日志中所
  • splitByWholeSeparatorPreserveAllTokens 和 split 之间的区别

    有什么区别StringUtils splitByWholeSeparatorPreserveAllTokens and String split With splitByWholeSeparatorPreserveAllTokens 我们可
  • Log4j 未使用属性文件找到自定义附加程序

    我正在尝试使用以下 XML 属性文件在 Eclipse 插件项目中配置 log4j 其中包括一个名为 EclipseLoggingAppender 的自定义附加程序
  • Tomcat JDBC 池中没有足够的空闲连接

    给定以下 Tomcat JDBC 连接设置
  • 在 Java 中查询 XML 的最简单方法

    我有带有 XML 的小字符串 例如 String myxml
  • MAC OS 的 java.awt.Robot 类中出现无头环境错误

    我正在尝试使用 JavaFX 应用程序捕获屏幕截图Robot class 这是我在我的应用程序中使用的代码 Rectangle screenBounds new Rectangle Screen getPrimary getBounds g
  • 从 AlertDialog 返回值

    我想构建一个函数来创建 AlertDialog 并返回用户输入的字符串 这是我用于创建对话框的函数 如何返回该值 String m Text private String openDialog String title AlertDialo
  • Restful WS 中的 WSDL 等价物是什么?如果没有,消费者如何生成所需的客户端类?

    比如说 我在java中有生产者 在 net中有消费者 生产者有一个方法 需要 员工作为方法参数并在数据库中创建员工 对于基于 SOAP 的 ws dot net 客户端将调用 WSDL 并创建存根 包括 dot net 中的员工数据表示 现
  • jsf 中的类型未找到属性

    我正在尝试调用 jsf 中使用 primefaces 的属性 但我有错误 500 在托管bean PersonelBean 类型上找不到 我正在使用 hibernate jsf 和 spring PersonelBean java Mana
  • 在Java程序中计算zip文件的md5哈希值

    我有一个 zip 文件 在我的 Java 代码中我想计算 zip 文件的 md5 哈希值 有没有我可以用于此目的的 java 库 一些例子将非常感激 谢谢 几周前我通过这篇文章做到了这一点 http www javalobby org ja
  • 我们可以用java定制一个垃圾收集器吗?

    我们知道java的垃圾收集器是一个低优先级线程 在java中我们可以创建任何具有高优先级的线程 那么是否有可能拥有我们自己定制的具有可变优先级的垃圾收集器线程 我们可以根据内存管理的级别进行设置 有人尝试过吗 如果是的话 您能分享一些关于如
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • Java applet 是否会违反同源策略

    我需要请求一些东西并从其他域获取信息 我知道由于同源政策 javascript 无法做到这一点 我的另一个选择是通过我的服务器发出代理请求 我不希望请求来自我的服务器的 IP 也不想为我的服务器创建额外的负载 并且希望客户端这样做 是否可以
  • 错误:运算符不存在:整数 = 字符变化,使用 Postgres 8.2

    我有一个用旧版本的 Eclipse Ganymede 如果我没记错的话 开发的 Java EE Web 应用程序 我最近迁移到 Kubuntu 12 04 LTS 并将应用程序迁移到 Eclipse Kepler 我从 Eclipse 网站

随机推荐

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

    因此 我正在制作一个网站 其中有几个 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