如何获取 JDesktopPane 中 JInternalFrames 的 z 顺序

2024-02-26

如何获取 JDesktopPane 内所有 JInternalFrame 的 z 顺序(层深度)。似乎没有直接的方法。有任何想法吗?


虽然我还没有尝试过这个,Container http://java.sun.com/javase/6/docs/api/java/awt/Container.html类(它是JDesktopPane http://java.sun.com/javase/6/docs/api/javax/swing/JDesktopPane.html类)包含一个getComponentZOrder http://java.sun.com/javase/6/docs/api/java/awt/Container.html#getComponentZOrder(java.awt.Component)方法。通过通过Component http://java.sun.com/javase/6/docs/api/java/awt/Component.html这是在Container,它将返回 z 顺序int. The Component该方法返回的 z 顺序值最低的则最后绘制,换句话说,绘制在顶部。

耦合与JDesktopPane.getAllFrames http://java.sun.com/javase/6/docs/api/javax/swing/JDesktopPane.html#getAllFrames()方法,它返回一个数组JInternalFrames http://java.sun.com/javase/6/docs/api/javax/swing/JInternalFrame.html,我认为可以获得内部框架的 z 顺序。

Edit

我实际上已经尝试过了,它似乎有效:

final JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JDesktopPane desktopPane = new JDesktopPane();
desktopPane.add(new JInternalFrame("1") {
    {
        setVisible(true);
        setSize(100, 100);
    }
});
desktopPane.add(new JInternalFrame("2") {
    {
        setVisible(true);
        setSize(100, 100);
    }
});
desktopPane.add(new JInternalFrame("3") {
    JButton b = new JButton("Get z-order");
    {
        setVisible(true);
        setSize(100, 100);
        getContentPane().add(b);
        b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                JInternalFrame[] iframes = desktopPane.getAllFrames();
                for (JInternalFrame iframe : iframes)
                {
                    System.out.println(iframe + "\t" +
                            desktopPane.getComponentZOrder(iframe));
                }
            }
        });
    }
});

f.setContentPane(desktopPane);
f.setLocation(100, 100);
f.setSize(400, 400);
f.validate();
f.setVisible(true);

在上面的例子中,一个JDesktopPane居住着三个JInternalFrames,第三个有一个按钮,将输出一个列表JInternalFrames 及其 z 顺序System.out.

示例输出如下:

JDesktopPaneTest$3[... tons of info on the frame ...]    0
JDesktopPaneTest$2[... tons of info on the frame ...]    1
JDesktopPaneTest$1[... tons of info on the frame ...]    2

该示例使用大量匿名内部类只是为了保持代码简短,但实际的程序可能不应该这样做。

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

如何获取 JDesktopPane 中 JInternalFrames 的 z 顺序 的相关文章

  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • 设置 SWT Shell 的默认字体

    有没有办法为整个 Shell 设置默认字体 以便任何新控件都将使用相同的字体 看来现在我必须为我创建的每个控件设置字体 这导致了太多的冗余 默认使用的字体由平台选择 请参阅中的其他信息 类字体 SWT 标准小部件工具包 http book
  • 使用 Android WebViewClient 启用特定 SSL 协议

    我的应用程序使用WebViewClient与服务器建立 SSL 连接 服务器配置为仅接受 TLSv1 1 及以上协议 使用 Android 时 如何检查哪些 SSL 协议是 a 支持的和 b 默认启用的WebViewClient在设备上 如
  • 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有opencv_java249

    我目前正在尝试在我的 32 位笔记本电脑上设置 OpenCV 但我不断收到一条令我困惑的错误消息 Exception in thread main java lang UnsatisfiedLinkError no opencv java2
  • RSA SignatureException:签名长度不正确

    我在签署 rsa 签名时遇到问题 我有一个用私钥加密的签名 然而 当我尝试使用公钥验证它时遇到问题 我得到以下异常 java security SignatureException Signature length not correct
  • 如何修复 Android 7.0 的 Spinner 模式下的 DatePickerDialog?

    我目前正在开发一个简单的项目 其中包含一个包含在 Web 视图中的网站 具有少量交互 以提高网站本身和 Android 移动设备之间的交互性 由于该网站包含用户生日的日期输入字段 因此我希望实现一个与所有设备兼容的旋转格式的日期选择器 我尝
  • 用 java 编写解释器时的 switch 或 if 语句

    当前的作业需要我编写一个程序 以一种非常微小且基本的编程语言 行为有点像 FORTRAN 来读取包含指令的文件并执行这些指令 基本上它是我猜的语言的简单解释器 它是完全线性的 所有语句都是按顺序定义的 并且只有字符串和整数变量 我需要查找和
  • 以编程方式设置 Logback Appender 路径

    我正在尝试以编程方式设置 Logback 附加程序路径 滚动文件附加器 http logback qos ch apidocs ch qos logback core rolling RollingFileAppender html准确地说
  • Java 泛型:如何为泛型类型指定类类型?

    我有一个 POJO 指定为 MyClass u where U是泛型类型参数 我正在尝试编写一个接受类引用的实用方法Class u
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 为什么现在()? (客观化)

    为什么我想要异步加载 Objectify 实体 异步加载到底意味着什么 根据客观化有关加载的文档 https code google com p objectify appengine wiki BasicOperations Loadin
  • 是否可以为 azure blob 存储中的给定目录生成具有写入权限的 SAS(共享访问签名)

    我们的 blob 存储帐户结构 容器名称 simple 在这个容器内我们有 blob aa one zip aa two zip bb ss zip bb dd zip 是否可以生成对aa 目录 有写权限 但对bb 目录 没有访问权限的SA
  • 如何使用云打印打印Android活动显示

    我正在尝试将 Google 云打印实现到应用程序中 遵循集成指南 https developers google com cloud print docs android 我试图通过打印 google com 来保持基本 单击我创建的打印按
  • 找不到符号assertEquals

    我正在尝试为计算器编写第一个单元测试 但 NetBeans 说它找不到该符号assertEquals和注释 Test 我应该包括一些东西吗 我正在使用 NetBeans 7 3 1 和 W7 package calculator impor
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • 将带有 webapp 的 WAR 部署到 Maven 中央存储库是否有意义?

    这样做有意义吗 如果是 我在哪里可以找到使用简单的 Web Hello World 执行此操作的示例 当人们从 Maven 执行 Web 应用程序时 他们会使用 Jetty 来运行它吗 我想 tomcat 太重了 任何帮助将不胜感激 谢谢
  • JMockit - 初始化问题

    当我使用以下测试时 我收到警告 警告 JMockit 是按需初始化的 这可能会导致某些测试失败 请检查文档以获取更好的初始化方法 这是我的测试实现 package test import static mockit Mockit impor
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c

随机推荐

  • 指定 XmlRootAttribute 时的 XmlSerializer 性能问题

    我目前遇到一个非常奇怪的问题 我似乎不知道如何解决它 我有一个fairly我正在尝试使用 XmlSerializer 类对其进行序列化的复杂类型 这实际上运行良好并且类型序列化正确 但似乎需要一个very长时间这样做 大约 5 秒 具体取决
  • nhibernate 持久化对象真的需要默认构造函数吗?

    由于某种原因 我不想让用户创建对象的实例 而不向构造函数发送属性 但据我所知 该对象应该具有默认构造函数 因此可以在不发送必需属性的情况下创建实例 有什么办法可以防止这个问题吗 如果有的话有副作用吗 只需使用受保护的默认构造函数 publi
  • 在 Qt 中自定义 AppMenu

    我正在为 MacOS 开发 Qt 应用程序 如何向 menuApp 添加项目 我的意思是出现在苹果图标右侧菜单栏上的条目 我想知道如何在 Qt 中实现这一点 而不是 Objective C 我正在使用 Qt 5 9 这是QWidget应用程
  • 带有选择死锁的嵌套更新

    背景 我正在使用一些代码 似乎deadlock经常与自己在一起 在Java中 它产生一个DeadLockLoserDataAccessException定期地 并且导致死锁的违规语句通常是itself 这是在 InnoDB 的事务中运行的
  • deleteRow 有时会删除右边的行,有时则不会在 Javascript 中删除

    我有一张桌子 每行的末尾都有一个 href X 用于删除该行 这很简单 现在 当您单击任意第 2 行的 X 时 它会删除第 2 行 但是当您单击第 3 行时 它会删除第 4 行 这是我的代码 HTML table align center
  • 构建重新训练的初始 SavedModel 后清空变量文件夹

    我正在尝试导出经过重新训练的初始模型 我读过这个几乎类似的问题here https stackoverflow com questions 43001719 deploy retrained inception savedmodel to
  • 求数组中绝对差值之和最小的一个数

    例如 array a 1 1 10 我们需要找到 x 这样 x 1 x 1 x 10 是最小值 这里 x 是 1 可以用贪心的方法解决吗 比如取平均值或其他方法 注意 取平均值不起作用 why 我只能想出O nlogn 解决方案 二分搜索
  • 默认使用maven静态编译.groovy

    我现在在我们的项目中使用maven编译 groovy 我的 pom xml 是
  • 跟踪 PHP 中的内存使用情况

    我正在尝试跟踪处理 URL 的脚本的内存使用情况 基本思想是在将另一个 URL 添加到 cURL 多重处理程序之前检查是否有合理的缓冲区 我使用 滚动 cURL 概念 在多处理程序运行时处理 URL 数据 这意味着每次现有 URL 处理和删
  • 为什么在这种特殊情况下,instanceof 模式匹配不能与 else if 一起使用?

    以下代码片段无法在 javac 版本 17 Temurin 上编译 class Instanceof static void doesNotWork Object o if o null throw new Error else if o
  • NSPredicate 对一个查询字符串进行多次比较

    我想知道是否有一种方法可以简化 NSPredicate 该 NSPredicate 接受多个比较目标的单个查询字符串 我正在搜索同一查询字符串的核心数据实体的多个属性 我当前的查询看起来像这样 NSPredicate predicateWi
  • 如何在 R 中的并行方法中使用无用的记录器进行记录?

    我在 R 中使用无用的记录器进行日志记录 我有一个使用 R 中的 Snowfall 实现的并行算法 并行进程的每个核心都会在记录器中记录中间输出 但是这个输出没有显示在记录器中 我们可以在使用降雪的并行作业中使用徒劳的记录器进行记录吗 添加
  • Android 初学者应用程序中的 openSearch() 未定义

    我刚刚开始学习 Android 初学者教程 现在面临一个问题 在这一页 http developer android com training basics actionbar adding buttons html Respond在 响应
  • 如何播放组合声音,就像从一群发声物体发出的声音一样

    假设我有 100 个 squeaker 类的实例 每个 吱吱声 物体都能够单独发出吱吱声 每个squeaker实体使用相同的 mp3资源 当所有吱吱声一起出现在屏幕上时 例如作为小角色 我希望它们都大约 但不完全 同时发出吱吱声 以便将它们
  • 逆时针旋转矩阵M*N的每个环

    我无法旋转M N逆时针方向的矩阵 我的代码可以正常工作3 3矩阵 但是当我尝试任何其他情况时 它不起作用假设我正在这样做4 4矩阵 则只有外部元素旋转 内部 4 个元素 即 6 7 10 11 不旋转 我的输入是 1 16 个数字4 4 m
  • mvccontrib grid - 如何添加 id

    我想向我构建的 mvccontrib 网格的 tr 元素添加一个 id tr tr tr tr 因此 如果表包含 10 行 则 id 为 0 到 9 一种方法是向我的实体添加一个附加项目来存储该值 然后将其创建为隐藏列 并将 id 作为该项
  • 有没有更快的方法来生成 .csv 文件作为 groupby 和循环的替代方法?

    我必须生成数十个包含数百万行和数十列的 csv 文件 我目前正在通过执行以下操作来生成文件groupby列 A 和 B 并循环动态生成文件to csv 下面是我正在尝试做的事情的一个例子 有没有更快的技术 我的实际数据帧需要 10 多分钟才
  • Visual Studio 中的版本控制

    我目前正在开发一个大型项目 即将做出一些重大更改 并且正在寻找一种方法来 备份 我之前的工作 Visual Studio 中是否有内置功能可用于版本控制 该项目仅由我开发 并且不使用 Team Foundation Server 这是我大部
  • 如何使用带有要价和出价的 pandas 数据框计算成交量加权平均价格 (VWAP)?

    如果我的表格如下所示 如何创建另一个名为 vwap 的列来计算 vwap time bid size bid ask ask size trade trade size phase 0 2019 01 07 07 45 01 064515
  • 如何获取 JDesktopPane 中 JInternalFrames 的 z 顺序

    如何获取 JDesktopPane 内所有 JInternalFrame 的 z 顺序 层深度 似乎没有直接的方法 有任何想法吗 虽然我还没有尝试过这个 Container http java sun com javase 6 docs a