输出当前关注的组件信息

Posted

技术标签:

【中文标题】输出当前关注的组件信息【英文标题】:Output information about currently focused component 【发布时间】:2015-04-06 09:21:57 【问题描述】:

我有很多带有多个组件的 JFrame。它们通常是动态构建的,所有组件也都是动态添加的,但有些是手动构建的。

想要我想要: 我想添加一个新组件,比如一个只读的 JTextField,它打印有关 JFrame 中当前焦点组件的信息。目的是有一个非常简单的方法来查看每个组件从哪里获取数据(它们通常绑定到数据库中的字段或某些方法,只是返回它们需要的数据)和其他有趣的东西。 让我们称之为“DebugInfoComponent”。

我目前的想法,我觉得有点原始: 我可以“只是”为每个 JFrame 的每个组件添加一个 FocusListener,然后通知 DebugInfoComponent,然后它会根据所关注的组件调用 setText 并提供相关信息。

我的问题: 有没有更好的办法?

【问题讨论】:

见The Use of Multiple JFrames, Good/Bad Practice? 看看KeyboardFocusManager @MadProgrammer 我刚刚做了一个快速测试,它似乎正是我想要的——谢谢!关键是在 focusOwner 上添加一个属性侦听器,似乎就是这样:-)(作为答案发布,我会接受) 【参考方案1】:

使用KeyboardFocusManger,您可以使用它的属性更改支持来监控应用程序焦点状态的更改。

您可能想要监控 focusOwner 属性,但您也应该调查其他属性

【讨论】:

以上是关于输出当前关注的组件信息的主要内容,如果未能解决你的问题,请参考以下文章

系统日志log4j配置学习总结

如何获取子进程的输出

shell脚本整合json数值输出从而获取硬件信息

SvelteKit 并在服务器端渲染中缓存组件输出

Linux nohup和&后台运行,进程查看及终止,进程信息输出,控制台信息输出

日志框架logj的使用