Java: обработка события в компоненте внутри отдельного компонента JPanel - PullRequest
0 голосов
/ 12 августа 2010

Итак, у меня есть JFrame, в который я добавил пользовательский компонент JPanel.

Компонент JPanel имеет кнопку, к которой я хочу подключить слушателя в моем JFrame.

Каков наилучший способ сделать это?

1 Ответ

2 голосов
/ 12 августа 2010

Если я не прочитал это неправильно, когда вы добавили JPanel самостоятельно, вы можете просто добавить actionlistener к кнопке.

JButton.addActionListener(... some listener);

Или это то, что вы спрашиваете здесь?например, если пользовательский JPanel не разработан вами.Затем в этом случае посмотрите, предоставляет ли панель API-интерфейс для добавления слушателя к своим кнопкам, если нет, то последний вариант - перебрать дочерние элементы, чтобы найти JButton:

Component[] comp = customPanel.getComponents();
for(Component c: comp) {
  if(c is a button i am interested in) {
    c.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
           // implement the logic of what happens when button is clicked!
       }
    });
  }
}
...