java - How can I put Jbuttons into arraylist with considering their name? -
i have code , want put buttons in page in arraylist considering name if name example btn_2 should second element of list. gives error , says cannot cast field jbutton since list type jbutton not field.his not code of them code consist of ading panel adding button panel labels.
getcontentpane().setforeground(color.dark_gray); getcontentpane().setlocation(-405, -87); setresizable(false); setdefaultcloseoperation(jframe.exit_on_close); getcontentpane().setlayout(null); panelpod1 = new jpanel(); panelpod1.setbounds(65, 13, 353, 313); panelpod1.setborder(new bevelborder(bevelborder.raised, color.dark_gray, null, null, null)); getcontentpane().add(panelpod1); panelpod1.setlayout(null); jpanel panel = new jpanel(); panel.setborder(new softbevelborder(bevelborder.lowered, color.dark_gray, null, null, null)); panel.setbounds(10, 11, 59, 59); panelpod1.add(panel); panel.setlayout(null); btn_1 = new jbutton(); btn_1.settext(""); btn_1.setenabled(false); btn_1.setborder(new roundedborder()); btn_1.setbounds(17, 15, 26, 24); panel.add(btn_1); btn_3 = new jbutton(""); btn_3.setenabled(false); btn_3.setforeground(systemcolor.textinactivetext); btn_3.setbackground(systemcolor.activecaption); btn_3.setbounds(10, 15, 26, 24); btn_3.setborder(new roundedborder()); panel1.add(btn_3); panel.setlayout(null); btn_5 = new jbutton(""); btn_5.setenabled(false); btn_5.setbounds(11, 15, 26, 24); btn_5.setborder(new roundedborder()); panel_1.add(btn_5); btn_2 = new jbutton(""); btn_2.setenabled(false); btn_2.setbounds(12, 15, 26, 24); btn_2.setborder(new roundedborder()); panel_2.add(btn_2); btn_4 = new jbutton(""); btn_4.setenabled(false); btn_4.setbounds(11, 15, 26, 24); btn_4.setborder(new roundedborder()); panel_3.add(btn_4); jpanel panel_4 = new jpanel(); panel_4.setborder(new bevelborder(bevelborder.lowered, null, null, null, null)); panel_4.setbounds(10, 81, 59, 59); panelpod1.add(panel_4); panel_4.setlayout(null); btn_6 = new jbutton(""); btn_6.setenabled(false); btn_6.setbounds(10, 15, 26, 24); btn_6.setborder(new roundedborder()); panel_4.add(btn_6); integer search_index=0; java.lang.reflect.field[] fields; integer arrayindex=0; arraylist<jbutton> rockets; boolean allfound=false; while (!allfound) { (int =0;i<fields.length;i++) { if(fields[i].getname().equals("btn"+arrayindex.tostring())) { rockets.add(arrayindex,fields[i]); } if (arrayindex==50) { allfound = true; } } }
like else here, highly doubt whether should approach problem way, if insist, works:
final int number_of_buttons = 50; final string prefix = "btn_"; field[] fields = getclass().getdeclaredfields(); jbutton[] rockets = new jbutton[number_of_buttons]; (field field : fields) { if(field.getname().startswith(prefix)) { int index = integer.parseint(field.getname().substring(prefix.length())) - 1; rockets[index] = (jbutton) field.get(this); } }
i assumed first button called btn_1
, hence -1
index.
Comments
Post a Comment