Неправильный огонь Mouselistener - PullRequest
1 голос
/ 01 марта 2012

Я создал программу на Java, в которой вы можете рисовать эллипсы и прямоугольники, а затем группировать их для выполнения действий по изменению размера и перемещению над ними.

Я добавляю MouseListener s к обоим DrawPanel(JPanel) в качестве всех созданных фигур (Компоненты на этом drawPanel).Но после того, как я сгруппировал несколько фигур вместе, создается впечатление, что MouseListener отталкивается назад и MouseListener, связанный с MainFrame, срабатывает.

Я сделал обход вызовов функции .GetCompontent () для JPanel.Но, безусловно, должна быть возможность выдвинуть компоненты MouseListener?

И JPanel, и компоненты на нем используют одинаковые MouseListener

public class MainFrame extends JFrame implements ActionListener,MouseInputListener {        

public MainFrame() {
    super("Tekenprogramma");
    //some other stuf
    drawPanel.addMouseListener(this);
    drawPanel.addMouseMotionListener(this);
}

и когда фигурысозданные и добавленные в одном классе:

public void mousePressed(MouseEvent e) {
    if(e.getSource() == drawPanel) {
        Point pos = e.getPoint();
        switch(mode) {
//Some other cases...
        case RECTANGLE:
            shape = new Rectangle(pos);
            shape.addMouseListener(this);
            shape.addMouseMotionListener(this);
            storeAndExecute(new RectangleCommand(drawPanel,shape));

, изначально фигуры реагируют на своего слушателя.Но после того, как я удалил и прочитал их (вложенные в компонент без MouseListener (группа)), они прекращают работу и MouseListener *1024* вступает во владение.

...