我目前的问题是我使用this.setVisible(false)隐藏了我的jframe1,并调用了jframe2。但是如何再次进入相同的jframe1?我可以设置jframe1.setVisible(true),但这将调用新的jframe1。
我隐藏的以前的jframe1有我从登录表单中提取的mysql数据。现在您可以看到,我的问题是,如果我将jframe1的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
最佳答案
我不确定这是否是您要寻找的东西。听起来,您希望能够从另一个类中还原隐藏的(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();
}
}
关于java - 如何取消隐藏/调用带有两个参数的jframe类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22803122/