2

私は私のプログラム用のチャットクライアントを作成しようとしています.チャットごとに新しいウィンドウを開きたいです(A & BはA & Cと同じウィンドウにはありません)しますが、書き方がわかりません。

チャット クライアント:

inputstream.read()
Read who message from
If (chat window arleady open with person from)
{
    Add Message to output section of the window
{
else if (chat window not open)
{
    Open new chat window with person from
    Display message in new chat window
}

これを行うために、私が考えたのは、IP を配列に格納し、クライアントがメッセージを受け取るたびに、配列を調べて IP が格納されているかどうかを確認することです。格納されている場合、ウィンドウは既に開いているはずです。格納されていない場合は、ウィンドウを開く必要があります。JFrame の defaultonclose コマンドを使用して、ウィンドウが閉じられたときに IP の削除を呼び出すだけでこれをプログラムできますが、ここに私が遭遇している問題があります。

  1. IP アドレスの配列を検索したら、ウィンドウが既に開いている場合 (AB と C が D と通信しているとします)、C が C ウィンドウに配置されるメッセージを送信したかどうかを確認するにはどうすればよいですか?

1.1 新しいスレッドを作成してスレッドに名前を付け、メッセージが届いたら名前に一致するスレッドに渡すことを考えましたが、その方法がわかりません。以前にスレッドの名前を読んだことがありますが、特定のスレッドに何かを渡したことがありません。

余分なライブラリをダウンロードせずにこれを簡単に行う方法はありますか?

4

1 に答える 1

5
  • 別のウィンドウには使用しないJFrameでください。設定できないため、代わりparent v.s.ownerに使用してくださいJDialog

  • 次に、使用されている場所JFrame.getOwnedWindows()のすべてのインスタンスを返しますJDialog(myFrame owner)JDialog(s)

  • いずれの場合もWindow[] allWindows = Window.getWindows();、現在の JVM からすべてのインスタンスを返します。(J)Frames(J)Dialogs(J)Windowsまたはのすべてのインスタンスを返します。JOptionsPanes

于 2012-07-06T18:02:15.670 に答える