Я не знаю, как работает Window Builder Eclipse, но я знаю, что NetBean создает анонимные внутренние классы, которые вызывают пользовательский метод для каждой кнопки, а затем позволяют программисту изменять тело пользовательского метода.Если Eclipse похож, то этот пользовательский метод можно просто вызвать методом вашего объекта Control.Конечно, это добавляет слой косвенности, но это небольшая цена, которую нужно заплатить, чтобы дать вам полный контроль над вашим контролем.
Например, если я создаю JButton с именем «myButton», а затем заставлю генератор кода создатьдействие для моей кнопки, он создаст этот код:
myButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
myButtonActionPerformed(evt);
}
});
и позволит мне получить доступ и написать код в сгенерированном методе, myButtonActionPerformed:
private void myButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
И внутри этого методаЯ бы вызвал метод моего элемента управления:
private void myButtonActionPerformed(java.awt.event.ActionEvent evt) {
if (myControl != null) {
myControl.myButtonAction();
}
}
Класс элемента управления мог бы выглядеть примерно так:
class MyControl {
void myButtonAction() {
//TODO: implement control code
}
}
Для графического интерфейса потребовался бы метод setControl (MyControl myControl), чтобы «внедрить»управление в GUI.