Я работаю над заголовком таблицы, где я хочу иметь возможность сортировать столбец по левому щелчку + выбирать весь столбец с помощью ctrl + left click или что-то в этом роде.
Но мне кажется, чтобы иметь возможность подавить то, чтобы оба события происходили одновременно. Похоже, что MouseEvent.consume () на самом деле ничего не потребляет, а скорее «отмечает» событие как потребленное, но оно все еще обрабатывается AWT. Итак, идея заключается в том, что весь код должен проверять MouseEvent.isConsumed () или мне что-то не хватает?
Вот мой код:
package com.sigge.test;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
public class MouseListenerExample extends JFrame implements MouseListener
{
MouseListenerExample()
{
addMouseListener(this);
addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
System.out.println("Inner clicked");
}
@Override
public void mouseReleased(MouseEvent e)
{
System.out.println("Inner released");
}
@Override
public void mousePressed(MouseEvent e)
{
System.out.println("Inner pressed");
}
});
setSize(300, 300);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e)
{
System.out.println("Mouse Clicked");
e.consume();
System.out.println("Mouse Clicked - After consume()");
}
@Override
public void mouseEntered(MouseEvent e)
{
}
@Override
public void mouseExited(MouseEvent e)
{
}
@Override
public void mousePressed(MouseEvent e)
{
System.out.println("Mouse Pressed");
e.consume();
System.out.println("Mouse Pressed - After consume()");
}
@Override
public void mouseReleased(MouseEvent e)
{
System.out.println("Mouse Released");
e.consume();
System.out.println("Mouse Released - After consume()");
}
public static void main(String[] args)
{
new MouseListenerExample();
}
}
Насколько я понимаю, нажатие должно генерировать только одно событие, и «внутренний» прослушиватель должен быть подавлен, но оба обработчика событий выполняются. Что дает?