当前位置: 首页 > 面试题库 >

如何检查是否打开了jframe?

隆宏爽
2023-03-14
问题内容

我下面的代码创建一个新数组,并将其发送到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。而是在chat 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);
}

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



 类似资料:
  • 问题内容: 有没有一种简单的方法来检测XMLHttpRequest在浏览器窗口中是否处于活动状态?还是有多少活跃?即。有没有一种方法可以检测我的浏览器窗口中是否有活动的AJAX调用? 问题的扩展: 使用javascript有没有办法查看是否打开了XMLHttpRequests?例如“ window.XMLisActive()”或类似的东西? 解决方案:最终为XMLHttpRequest写一个包装器

  • 问题内容: 如果我在关闭的管道中写一条消息,则程序崩溃 在写之前如何检查它是否仍然打开? 问题答案: 正确的方法是测试的返回码,然后还要检查: 但是请稍等:写入封闭的管道不仅会返回-1 ,而且还会发送一个终止进程的信号: EPIPE fd连接到读数端关闭的管道或插座。发生这种情况时,写入过程还将收到SIGPIPE信号。 因此,在进行测试之前,您还需要 忽略:

  • 我正在用java创建一个jframe。但我想检查系统上是否已经存在jframe。我尝试过一种方法,从任务管理器获取所有进程,然后查看它是否正在运行,但它不会工作。我使用了这篇文章中的一种方法:https://stackoverflow.com/a/19005828/15349408它的进程名是“javaw.exe”。 它无法检查jframe对象是否为null,因为它将从其他程序运行。是否可以检查j

  • 问题内容: 我的应用程序存在问题,用户一次将打开多个窗口。而且我添加了dispose()方法来调用关闭窗口。现在,我应该一直保持至少打开一个窗口,以便应用程序不会在没有完全关闭的情况下隐藏。如果您不明白,请阅读以下情形: 我同时打开了窗口A和窗口B。现在我可以关闭窗口A或窗口B,但不能同时关闭两者。换句话说,仅当窗口A打开时,才应允许窗口B关闭,反之亦然。我如何做到这一点? 问题答案: 一个简单的

  • 问题内容: 我正在使用以下代码 这可以启用或禁用它 但我想作为函数说函数名是 那么我可以按照我的网站代码中的任意位置来称呼它 与我先前的问题几乎相同,请检查是否启用了allow_url_fopen 问题答案: 只需从函数中返回现有支票即可。

  • 我有一个在Docker中运行的Cassandra,我想在数据库准备就绪时启动一个CQL脚本。我尝试检查端口以检测它何时就绪: 但是在数据库真正准备好之前就打开了端口,因此失败。如何正确检查Cassandra状态并启动脚本?提前道谢。