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
Post a Comment