javaSpace から取得するクライアント ウィンドウを作成しています。これが使用しているコードです。
/**
* Create the frame.
*/
public Client()
{
space = SpaceUtils.getSpace();
if (space == null)
{
System.err.println("Failed to find the javaspace");
System.exit(1);
}
initFrame();
setVisible(true);
processPrintJobs();
}
ウィンドウは initFrame() 内で生成されます。その後、processPrintJobs は、新しいメッセージがあるかどうかを確認します。processPrintJobs() メソッド呼び出しをコメントアウトすると、ウィンドウは正しく描画されますが、メソッド呼び出しが存在する場合、ウィンドウには空白の四角が表示されます。
プロセスが何度もチェックされているため、ウィンドウが正しく作成されていないようです。これは、 while ループが実行される前にウィンドウが作成されるため意味がありません。
public void processPrintJobs()
{
while (true)
{
try
{
Message template = new Message();
if (channel == null)
{
System.out.println("No channel given");
} else
{
template.Channel = channel;
// System.out.println(channel);
template.position = new Integer(getNumber() + 1);
Message msg = (Message) space.read(template, null,
Long.MAX_VALUE);
messageList.append(msg.execute());
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}