Java awt - 获取根窗口的标题

我正在为 Burp Suite 编写一个插件,我想在我的插件中使用当前打开的项目名称。遗憾的是,没有对此进行 API 调用,因此我的替代方案是获取窗口标题并用正则表达式输出项目名称。窗口标题如下所示:

http://img1.mukewang.com/64af9a1600010c7706520039.jpg

但是,我似乎无法使用代码获取该窗口的标题。我已经尝试过所有这些:


SwingUtilities.windowForComponent(tab);

SwingUtilities.getWindowAncestor(tab);

SwingUtilities.getAncestorOfClass(JFrame.class, tab);

SwingUtilities.getRoot(tab);

SwingUtilities.getRootPane(tab).getParent();

全部返回:( .tostring())


burp.a_5[frame0,0,23,1280x720,invalid,layout=java.awt.BorderLayout,

title=Burp Suite Professional v2.1.03 - Temporary Project - 

licensed to OMITTED [OMITTED license],resizable,maximized,defaultCloseOperation=

DO_NOTHING_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,22,1280x698,

invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,

alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@1a0b90f7,

flags=16777673,maximumSize=,minimumSize=,preferredSize=],

rootPaneCheckingEnabled=true]

然而,似乎没有办法真正从这个对象中获取 title= 。该函数.getName()返回:frame0. 也许我错过了一些明显的东西。如何获取title=此 AWT 容器对象?


万千封印
浏览 100回答 1
1回答

森林海

尝试以下操作:((JFrame) SwingUtilities.windowForComponent(tab)).getTitle();也许你应该检查你的窗口是框架还是对话框Window w = SwingUtilities.windowForComponent(tab);String title = null;if (w instanceof JFrame) {    title = ((JFrame) w).getTitle();} else if (w instanceof JDialog) {    title = ((JDialog) w).getTitle();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java