前段时间,我读到在应用程序中切换不同“屏幕”的最佳方法是设置不同的JFrame
,然后简单地将第一个调用并调用第二个。例如,我有一个扩展JFrame
的屏幕A和一个扩展JFrame
的屏幕B,在一个应该切换到下一个屏幕的按钮上我会写这样的东西
JButton button = new JButton("show next screen");
button.addActionListener(){
new ScreenB();
frameA.dispose(); // assumed that we coded something like frameA = this earlier
}
现在的问题是,在两个帧的转换之间,我看到让我们说1/10屏幕A或屏幕B,这是非常难看的。什么是更好的解决方案?将屏幕扩展为Container
并将其设置为ContentPane
,始终保持相同的JFrame
?
答案 0 :(得分:2)
尝试将WindowListener
附加到FrameA
在您的动作监听器调用frameA.dipsose()
中,只要框架集设置为DISPOSE_ON_CLOSE
,它就会触发windowClosed
中的WindowListener
事件。
发生这种情况时,您现在可以打开新窗口。
答案 1 :(得分:-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中调用的“屏幕”。