Swing プロジェクトで を使用し、メニュー ペイン、コンテキスト ペイン、ステータス ペインJFrame
の 3 つの部分に分割しました。
ステータス ペインには、ユーザーがアクションを実行する際に、アクションが成功したかどうかと、ユーザーが知りたいその他の情報が表示されます。たとえば、ユーザーがコンテキスト メニューの削除ボタンをクリックすると、操作が正常に完了したかどうかがステータス パネルに示されます。
ステータス パネルの問題は、しばらくするとステータスを更新する必要があることです。たとえば、ユーザーが別のボタンをクリックしたり、コンテキスト ペインの他のページを移動したりした場合、ステータス ペインには最後の削除操作の結果が表示されたままになってはなりません。
これには、私が考えることができる2つの回避策があります。
- 数秒後にステータスをクリアします。
JPanels
すべてのコンポーネント ( 、 、および ...)にマウスまたはキーボード アクション リスナーを追加して、マウスまたはキーボードJTextFields
からのアクティビティ時にステータス パネルを呼び出してステータスをクリアします。
最初のオプションの実装は比較的簡単ですが、それだけでは十分ではありません。2つの組み合わせが必要だと思います。ただし、問題は、これらのアクション リスナーをすべてのコンポーネントに追加する場合、非常に汚いアプローチになることです。たぶんメインフレームに追加できます。私はしました(コードは以下に示されています)が、マウスがフレーム自体のパネル上で移動している場合にのみ機能します(たとえば、コンテキストペインではありません)
何か提案はありますか?
JFrame.this.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent me) {
}
@Override
public void mouseMoved(MouseEvent me) {
Config.statusPanel.clearStatus();
}
});