java - Dynamically add swing component to gui on click? -


purely theoretically when adding new components

jbutton buttonadd= new jbutton("add more");         buttonadd.addactionlistener(new actionlistener() {              @override             public void actionperformed(actionevent e) {                   panel.add(new jcombobox<string>(data);                   panel.add(new jtextfield();                 }         }); 

is there way getselectedindex() or gettext() when u don't declare in normal way?

there several ways reach dynamicaly added components swing tree:

1st approach:

panel.getcomponent(n); 

returns n'th component in panel (container). (n order, component added parent (parent panel here) ) (you need know component's index) way can use ((jcombobox)panel.getcomponent(3)).getselectedindex()

2nd approach

directly add listeners when dynamically adding components;

jbutton b1 = new jbutton("add"); b1.addactionlistener(e -> {        jcombobox<string> color = new jcombobox<string>();     color.addactionlistener(x -> { myformbean.setcolor(color.getselecteditem();) });     panel.add(color);      jtextfield name = new jtextfield();     name.getdocument().adddocumentlistener(new documentlistener() {         @override         public void removeupdate(documentevent e) {             myformbean.setname(name.gettext());         }          @override         public void insertupdate(documentevent e) {             myformbean.setname(name.gettext());         }          @override         public void changedupdate(documentevent e) {             myformbean.setname(name.gettext());         }     });     panel.add(name);      panel.revalidate();     panel.repaint();  }); 

this way not need reach dynamically added components.

3rd approach may using framework data binding,

4rd approach ...


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -