Можно ли изменить (или иметь более одного) containerDelegate? - PullRequest
0 голосов
/ 08 марта 2019

Все это работает в Netbeans.

Допустим, у вас есть пользовательский контейнерный компонент, который является подклассом JPanel с несколькими JPanel внутри себя.Если вы хотите, чтобы он работал как контейнер в палитре, вы должны поместить ContainerDelegate, как сказано здесь: http://wiki.netbeans.org/FaqFormCustomContainerBean

Но вы можете поместить только один из JPanels в качестве ContainerDelegate, и, конечно, вы хотитечтобы иметь возможность добавлять вещи ко всем из них.

Возможно ли это?Как?

Ниже этой строки приведен пример

В классе:

    public class MyClass extends JPanel {

public MyClass() {
    initComponents();
}

    private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jPanel2 = new javax.swing.JPanel();

   ...
}// </editor-fold>                        

// Variables declaration - do not modify                     
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
// End of variables declaration                   

public JPanel getContainerDelegate(){
        return jPanel1;
//Can I change it?
}
}

И в BeanInfo добавьте следующие две строки:

BeanDescriptor desc = new BeanDescriptor(MyClass.class);
    desc.setValue("containerDelegate", "getContainerDelegate");

Затем вы можете добавить этот класс в палитру и перетаскивать в него виджеты, но только в JPanel1 я хочу также иметь возможность добавлять элементы в JPanel2.

...