如何检查jframe是否打开?

我的代码创建了一个新数组并将其发送到chat(jFrame)。

String info1[]=new String[3]; // username , userid , userid2 are variables info1[0]=username4; info1[1]=""+userid; info1[2]=""+userid2; chat.main(info1); 

但是我需要修改这段代码才能使用它,如果聊天jframe被打开,那么就不要打开一个新的jFrame。而是在聊天jframe中打开一个新标签。 聊天框的代码是:

 private void formWindowActivated(java.awt.event.WindowEvent evt) { JScrollPane panel2 = new JScrollPane(); JTextArea ta=new JTextArea(""); ta.setColumns(30); ta.setRows(19); panel2.setViewportView(ta); jTabbedPane1.add("Hello", panel2); } 

如果窗口依赖于另一个窗口,我想知道你是不是应该使用JDialogs而不是JFrames。

一个解决方案是使用类字段来保存对窗口的引用(JFrame或JDialog)并检查它是否为null或可见,如果是,则懒惰地创建/打开窗口,

 public void newChat(User user) { if (chatWindow == null) { // create chatWindow in a lazy fashion chatWindow = new JDialog(myMainFrame, "Chat", /* modality type */); // ... set up the chat window dialog } chatWindow.setVisible(true); addTabWithUser(user); } 

但这就是基于所提供的信息我可以说的全部内容。 如果您需要更具体的帮助,则需要提供更多信息。

如果使用JFrame,可以像这样简单地完成:

 if (Frame1.component != null) { Frame1 is opened } else if (Frame2.component == null) { Frame2 is closed } 

组件ex.JTextField,JComboBox等。