4

を自動的に非表示にしたいのですがJToolBar、マウスが に近づいた/上に移動したときにのみ表示されますJToolBar。に追加しJToolBarましたJPanel。にはマウスオーバー リスナーはありませんJToolBar。これを行う方法?

4

2 に答える 2

4

またはに a を追加MouseMotionListenerします。JFrameJDialog

addMouseMotionListener(new MouseAdapter() {
    public void mouseMoved(MouseEvent e) {
         toolbar.setVisible(e.getY() < 10);
     }
});

この方法では、マウスがウィンドウの上部 10 垂直ピクセル内にある場合にのみ、ツールバーが表示されます。

于 2011-11-17T15:04:45.927 に答える
3

JToolBar にはマウスオーバー リスナーがありません

を使用して、およびイベントMouseListenerを処理します。mouseEnteredmouseExited

ただし、マウス イベントは可視コンポーネントにしか渡されないため、問題が発生します。したがって、ツールバーを非表示にすると、mouseEntered イベントを受け取りません。

だから私はあなたのデザインを理解していません。ツールバーのそばのスペースを埋めるために、他のコンポーネントを上に移動させる予定はありますか? それとも、スペースを空けておきますか?後者の場合、MouseMotionListener をパネルに追加し、mouseMoved イベントを処理して、マウスがツールバーがあるべき場所にあることを確認する必要があります。

于 2011-11-17T15:59:31.623 に答える