1

不久前,我读到在应用程序中切换不同“屏幕”的最佳方法是设置不同JFrame的 s,然后简单地处理第一个并调用第二个。例如,我有屏幕 A 扩展JFrame和屏幕 B 扩展JFrame,在一个应该切换到下一个屏幕的按钮上,我会写这样的东西

JButton button = new JButton("show next screen");
button.addActionListener(){
    new ScreenB();
    frameA.dispose(); // assumed that we coded something like frameA = this earlier
}

现在的问题是,在两个帧的转换之间,我看到屏幕 A 或屏幕 B 的 1/10,这非常难看。什么是更好的解决方案?将屏幕扩展为Container并将它们设置ContentPane为始终相同JFrame

4

2 回答 2

2

尝试将 a 附加WindowListener到 FrameA

在你的action listener调用frameA.dipsose()中,只要把frame set设置成DISPOSE_ON_CLOSE它就会触发一个windowClosed事件WindowListener

发生这种情况时,您现在可以打开新窗口。

于 2012-10-21T01:56:15.353 回答
-3

您可以在另一个页面中调用来自 JQuery 的 div 标签,如下所示:

$("#myDiveTag").load("http://mySecondPage.aspx");

如果您需要发送变量,您可以执行以下操作:

var myVar = $("#controlThatHasVariable");
$("#myDivTag").load("http://xxx.aspx?myData=" + myVar);

这是 JQuery 加载方法的语法:

load("URI", data, callback)

本质上,您正在处理 div 标签内的内容并将其替换为您正在调用的页面。你不需要所有的标签,因为 JQuery 将页面插入到已经存在的页面中。因此您可以在按钮 onClick 事件上调用 javascript 函数并调用我在上面发布的 Jquery 以替换您在 Jquery 中调用的内容现有的“屏幕”。

于 2012-10-21T00:14:52.453 回答