3

以下の私のコードは、新しい配列を作成し、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);   
}
4

2 に答える 2

7

ウィンドウが別のウィンドウに依存している場合、JFrames の代わりに JDialogs を使用すべきではないのでしょうか。

解決策は、クラス フィールドを使用してウィンドウ (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);
}

しかし、それは提供された情報に基づいて私が言えるすべてです。より具体的なヘルプが必要な場合は、より多くの情報を提供する必要があります。

于 2013-07-01T04:28:41.337 に答える
1

JFrames を使用する場合は、次のように簡単に実行できます。

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

コンポーネント ex.JTextField、JComboBox など

于 2015-09-25T13:24:33.597 に答える