java - 如何检查一个jframe是否打开?

标签 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);

但我需要修改此代码以使其工作,如果聊天 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);
}

但根据所提供的信息,我只能说这么多。如果您需要更具体的帮助,则需要提供更多信息。

关于java - 如何检查一个jframe是否打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17397442/

相关文章:

java - 如何通过我的 Android 应用程序查看我的 Android 应用程序创建的数据库?

java - 如何使用 min() 函数在 sqlite 中指定查询

java - Gui 卡住在 while 循环中

java - 使用 vector 进行 JTable 操作

java - 如何在JScrollPane中获取水平滚动条

java - 如何让我的 JButton 与我的 JFrame 连接?

java - JFrame 大小、调整大小、全屏

java - 在 Hibernate 中使用 createSQLQuery 选择 scope_identity()

java - Eclipse (IBM AST) 找不到现有文件的导入

java - 代码完成后关闭 swing 应用程序