我目前的问题是我通过使用this.setVisible(false)来隐藏我的jframe1并调用jframe2。但我怎么再次去同一个jframe1?我可以设置jframe1.setVisible(true),但这会调用一个新的jframe1。
我隐藏的前一个jframe1有我从登录表单中提取的mysql数据。现在你看,我的问题是,如果我从jframe2将jframe1设置为setVisible(true),它实际上将运行新的jframe1以及它之前的所有数据都将以登录形式丢失。
为了您的信息,我的jframe1有2个覆盖类,jframe1()和jframe1(String getUsername,String getPassword)。我正在使用jframe1(String getUsername,String getPassword)从登录表单调用jframe1。
示例情况 来自jframe1(String getUsername,String getPassword)
//button to move from jframe1 to jframe2 (at jframe1)
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
jframe2 frame2 = new jframe2();
this.setVisible(false); // i hide jframe1(String , String) and call jframe2
// i use this.setVissible(false) because i dont know how to put
// jframe1(2 parameter) with setVisible().
frame2.setVisible(true);// call jframe2
}
取消隐藏并再次从jframe2
调用jframe1(String,String) private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
jframe1 frame1 = new jframe1(); //i have no idea how create jframe1 instance
//with 2 parameter, perhap this is the reason
// i failed to call previous jframe1
mf.setVisible(true); // unhide and call jframe1, unfortunately it will
// create new jframe1 form, i have no idea how to
// call/unhide the previous jframe1
this.setVisible(false); //hide jframe2
答案 0 :(得分:2)
我不确定那是不是,你在寻找什么。听起来,您希望能够从另一个类中恢复隐藏的(frame1.setVisible(false);
)窗口。
为此,您必须提供对frame1的引用的访问权限。然后,您可以按原样恢复窗口。
您的主窗口:
public class Window1 extends JFrame {
private final String username;
private final String password;
public Window1 (final String username, final String password) {
this.username = username;
this.password = password;
// do initial stuff for you frame here
this.setVisible(true);
}
// have to implement actual button action listener here
private onButtonClick() {
final Window2 = new Window2(this);
this.setVisible(false);
}
}
你的第二个窗口(也许是一个对话框?):
public class Window2 extends JFrame {
private final JFrame firstWindow;
public Window2(final JFrame firstWindow) {
if (firstWindow == null)
throw new IllegalArgumentException("No main window specified");
this.firstWindow = firstWindow;
// do initial stuff for your temp window here
this.setVisible(true);
}
// have to implement actual button action listener here
private onButtonClick() {
firstWindow.setVisible(true);
this.dispose();
}
}