Eclipse の Window Builder がどのように機能するかはわかりませんが、NetBeans がボタンごとにカスタム メソッドを呼び出す匿名の内部クラスを作成し、プログラマがカスタム メソッドの本体を変更できるようにすることは知っています。Eclipse が似ている場合は、このカスタム メソッドで Control オブジェクトのメソッドを呼び出すだけです。確かに間接的なレイヤーが追加されますが、コントロールを完全に制御できるようにするために支払うのはわずかな代償です。
たとえば、「myButton」という名前の JButton を作成し、コード ジェネレータでボタンのアクションを作成すると、次のコードが作成されます。
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:
}
このメソッド内で、Control のメソッドを呼び出します。
private void myButtonActionPerformed(java.awt.event.ActionEvent evt) {
if (myControl != null) {
myControl.myButtonAction();
}
}
コントロールクラスは次のようになります
class MyControl {
void myButtonAction() {
//TODO: implement control code
}
}
GUI にコントロールを「注入」するには、GUI に setControl(MyControl myControl) メソッドが必要です。