Swing отправляет событие программно - PullRequest
1 голос
/ 24 сентября 2010

Как мне создать пользовательское событие и программно отправить его компоненту?

Например, если у меня было JButton и я хотел создать ActionEvent или MouseEvent и затем отправитьэто как если бы пользователь нажал на него, какой код я бы использовал?

Следующий код не работает:

JButton btn = new JButton("Click...");

MouseAdapter my = new MouseAdapter()
{
   public void mousePressed(MouseEvent e)
   {
      area.setText("Button clicked!!!");
   }
};
btn.addMouseListener(my);

MouseEvent me = new MouseEvent(btn, MouseEvent.BUTTON1, 1, 0, 1, 1, 1, false);
btn.dispatchEvent(my);

Ответы [ 2 ]

2 голосов
/ 24 сентября 2010

Для вашего конкретного примера вы можете просто позвонить AbstractButton#doClick.

Если вам нужно создать искусственные события для общего случая, убедитесь, что заполнили все поля, которые имел бы реальный AWTEvent, так как обработчики событий могут принять их как должное.

0 голосов
/ 24 сентября 2010

Я думаю, вы можете вызвать метод dispatchEvent с Событием в качестве аргумента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...