繁体   English   中英

Java awt - 获取根窗口的标题

[英]Java awt - get title of root window

我正在为 Burp Suite 编写一个插件,我想在我的插件中使用当前打开的项目名称。 不幸的是,没有 API 调用,所以我的替代方法是去掉窗口标题和正则表达式项目名称。 窗口标题如下所示: 在此处输入图片说明

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

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 也许我错过了一些明显的东西。 我如何从这个 AWT Container 对象中获取title=

尝试以下操作:

((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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM