2

概要:デスクトップアイコンをクリックして、非表示のアプリを再び表示します。

Javaデスクトップアプリケーションを作成し、Launch4jを使用して実行可能ファイルを作成しました。私のアプリケーションは単一のインスタンスとして実行する必要があります。Launch4j構成GUIでそのオプションをチェックすることでこれを達成しました。ユーザーがウィンドウのxボタンをクリックすると(私はJFrameを使用しています)、ウィンドウは非表示になります。廃棄されません。ユーザーがシステムトレイアイコンをダブルクリックすると、アプリケーションウィンドウが再び表示されます。ユーザーがアプリケーションのデスクトップアイコンをダブルクリックし、アプリケーションがすでに実行されている場合、システムトレイアイコンの動作と同じように、メインウィンドウが再び表示されるようにする必要があります。

Launch4jは、[単一インスタンス]タブの下にウィンドウタイトルのオプションを提供します。このオプションは、私が必要としているものを対象としているのではないかと思います。ただし、ウィンドウタイトルを設定して上記の手順を実行すると、空白の白いウィンドウが表示されます。空白の白いウィンドウが表示された状態で、システムトレイアイコンをダブルクリックすると、アプリが白いウィンドウに表示されます。この動作は、トップレベルのコンテナ(Window、Frame、JFrame)に関連するコードを変更すると効果がある可能性があることを示しています。

Launch4jを使用しながら、この動作を組み込む方法について何かアイデアはありますか?(便利です)。

編集:

私の質問の核心は、ユーザーが実行可能デスクトップアイコンをダブルクリックしたときに何が起こるかをどのように定義するかです。既存のインスタンスを確認し、ダブルクリックを関連するシステムトレイアイコンにリダイレクトできれば、それは素晴らしいことです。

4

1 に答える 1

3

私は自分の目標を達成することができました。[シングルインスタンス]タブで、[ウィンドウタイトル]のフィールドにメインのJFrameのタイトルを入力しました。次に、メインのJFrameにWindowFocusListenerを追加しました。JFrameがフォーカスを受け取ると、それがすでに表示されているかどうかを確認します。そうでない場合は、JFrameを表示するための適切なメソッドを呼び出します。

重要な観察点は、Launch4jによって生成されたexeアイコンをダブルクリックすると、セットアップでウィンドウタイトルが指定されたときにウィンドウフォーカスイベントが発生することです。それが発生する唯一のイベントかどうかはわかりませんが、そのイベントをリッスンすることで、ユーザーがデスクトップアイコンをダブルクリックしたときに、Javaコード内から必要なアクションを実行できます。

于 2012-10-01T18:11:14.997 に答える