1

MouseListener を JToolBar に追加すると、

jToolbar.addMouseListener(new MouseInputAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
        log.debug(e.getPoint());
    }
});

このイベントは、JToolBar のグリッパーの外側をクリックしたときにのみ発生します。

BasicToolBarUI の createDockingListener() をオーバーライドすると、次のようになります。

@Override
protected MouseInputListener createDockingListener() {
    return new MouseInputAdapter() {
        @Override
        public void mousePressed(MouseEvent evt) {
            log.debug(e.getPoint());
        }
    }
}

グリッパーをクリックすると、イベントが発生します。

だから私の質問は、なぜですか?MouseEvent は dockingListener で消費されますか? しかし、イベントを消費するコードは見当たりません。

4

1 に答える 1