gpt4 book ai didi

java - 将应用程序移动到其他框架,然后返回到上一个

转载 作者:行者123 更新时间:2023-11-29 06:00:33 25 4
gpt4 key购买 nike

我正在编写 Java 小程序。我想打开一个包含实际存储在我的小程序中的内容的新框架。我正在通过按钮打开新框架:

openInNew.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
createDialog();
}
});

//this Function retrieves Frame for applet
public Frame getParentFrame( Component child )
{
Container c = child.getParent();
while ( c != null )
{
if ( c instanceof Frame )
{
return ( Frame ) c;
}
c = c.getParent();
}
return null;
}

private void createDialog()
{
Frame f=getParentFrame(openInNew); //openInNew is a button to Open a JDialog
frame = new AppletFrame("NEW FRAME",jContentPane);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}

这是 AppletFrame 的构造函数:

public AppletFrame(String string, JPanel jContentPane, Frame f) {
super(f,string);
this.setContentPane(jContentPane);
this.setSize(790, 650);

this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
removeAll();
FileListViewer.destroyFrame();
}
});
}

public static void destroyFrame()
{
jContentPane= (JPanel) frame.getContentPane();
jContentPane.repaint(); /*this one should repaint the Applet View, but the result
* is still the same. jContentPane is not null,
* it is filled with acutal components. */
jContentPane.setVisible(true);
frame.dispose();
frame.setVisible(false);
frame=null;
}

我的问题是 jConentPane 是一个引用,所以当我打开我的 AppletFrame 对象时,我的基本 Applet Frame 中没有存储任何内容。我想再次将 jContentPane 设置为 FileListViewer,但我无法在静态 destroyFrame() 中引用非静态方法。

最佳答案

关于java - 将应用程序移动到其他框架,然后返回到上一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10279227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com