如何检查jframe是否打开?

Sar*_*ang 3 java swing jframe jdialog jtabbedpane

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

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

 chat.main(info1);
Run Code Online (Sandbox Code Playgroud)

但是我需要修改这段代码,以便在打开聊天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);   
}
Run Code Online (Sandbox Code Playgroud)

Hov*_*els 7

如果窗口依赖于另一个窗口,我想知道你是不是应该使用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);
}
Run Code Online (Sandbox Code Playgroud)

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