San*_*oel 2 java reflection swing jframe
如何JFrame 在Java应用程序的不同事件派发线程中访问不同的执行请通过此处提出的SSCCE
在这种情况下,JVM的新实例或反射是否有帮助
最后,正如我所提到的,如果将以下代码添加到第一个类中
Frame[] f2 = JFrame.getFrames();
for(Frame fx: f2){
System.out.println(fx.getTitle());
fx.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
}
Run Code Online (Sandbox Code Playgroud)
如果在SSCCE中按顺序添加到第二个类,则只返回一个帧,返回两个帧,如果添加到第三个类,则返回所有帧.这是由于事件调度线程导致此行为背后的原因导致的问题.如何从主框架,即MyApp访问所有框架.
为什么JFrame.getFrames(); 返回awt帧说,例如,如果我想更改我的应用程序中所有JFrame的默认关闭操作,gerFrames返回awt帧,如果JFrame中的caset产生异常.
线程"main"中的异常java.lang.ClassCastException:[Ljava.awt.Frame; 无法转换为[Ljavax.swing.JFrame; at myApp.MYApp.main(MYApp.java:48)
代码行
Window[] allWindows = Window.getWindows();
Run Code Online (Sandbox Code Playgroud)
Top-Level Containers从当前返回所有数组JVM
J/Frame
J/Dialog(JOptionPane)
J/Window
必须测试是否
if (allWindows[i] instanceof JFrame) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |