Я создал программу на 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* вступает во владение.