java - Searching String/Int in objects in ArrayLists -
i'm trying search through array(inventory) string(name) or/and integer(id) inside object(productinfo). after name, id, number, , description show in 4 separate lables (nameout, idout, num out, desout). have no clue how this. appreciated.
namego button search name, idgo button search id.
/* * change template, choose tools | templates * , open template in editor. */ import java.util.*; /** * * @author matthewmurchison */ public class mventory extends javax.swing.jframe { /** * creates new form mventory */ public mventory() { initcomponents(); } public class productinfo{ string name; string des; int id; int num; public productinfo(string name, string des, int id, int num){ this.name = name; this.des =des; this.id = id; this.num = num; } } /** * */ public static void inventory(){ } //creat array arraylist <productinfo> inventory = new arraylist <productinfo> (); /** * method called within constructor initialize form. * warning: not modify code. content of method * regenerated form editor. */ @suppresswarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="generated code"> private void initcomponents() { jlabel1 = new javax.swing.jlabel(); jlabel2 = new javax.swing.jlabel(); jlabel3 = new javax.swing.jlabel(); jlabel4 = new javax.swing.jlabel(); jlabel5 = new javax.swing.jlabel(); jlabel6 = new javax.swing.jlabel(); jlabel7 = new javax.swing.jlabel(); namein = new javax.swing.jtextfield(); idin = new javax.swing.jtextfield(); desin = new javax.swing.jtextfield(); numin = new javax.swing.jtextfield(); namesearch = new javax.swing.jtextfield(); idsearch = new javax.swing.jtextfield(); nameout = new javax.swing.jlabel(); idout = new javax.swing.jlabel(); desout = new javax.swing.jlabel(); numout = new javax.swing.jlabel(); jlabel14 = new javax.swing.jlabel(); jlabel15 = new javax.swing.jlabel(); jlabel16 = new javax.swing.jlabel(); addgo = new javax.swing.jbutton(); namego = new javax.swing.jbutton(); idgo = new javax.swing.jbutton(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); jlabel1.settext("jlabel1"); jlabel2.settext("name:"); jlabel3.settext("id"); jlabel4.settext("descripion"); jlabel5.settext("number"); jlabel6.settext("name"); jlabel7.settext("id"); namein.settext("jtextfield1"); idin.settext("jtextfield2"); idin.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { idinactionperformed(evt); } }); desin.settext("jtextfield3"); numin.settext("jtextfield4"); namesearch.settext("jtextfield5"); idsearch.settext("jtextfield6"); nameout.settext("jlabel10"); idout.settext("jlabel11"); desout.settext("jlabel12"); numout.settext("jlabel13"); jlabel14.settext("add"); jlabel15.settext("search name"); jlabel16.settext("search id"); addgo.settext("jbutton1"); addgo.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { addgoactionperformed(evt); } }); namego.settext("jbutton2"); namego.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { namegoactionperformed(evt); } }); idgo.settext("jbutton3"); idgo.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { idgoactionperformed(evt); } }); org.jdesktop.layout.grouplayout layout = new org.jdesktop.layout.grouplayout(getcontentpane()); getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(org.jdesktop.layout.grouplayout.trailing, layout.createsequentialgroup() .add(0, 0, short.max_value) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(addgo) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(org.jdesktop.layout.grouplayout.trailing, layout.createsequentialgroup() .add(jlabel14) .add(233, 233, 233)) .add(org.jdesktop.layout.grouplayout.trailing, layout.createsequentialgroup() .add(jlabel15) .add(222, 222, 222)) .add(org.jdesktop.layout.grouplayout.trailing, layout.createsequentialgroup() .add(jlabel16) .add(230, 230, 230))))) .add(layout.createsequentialgroup() .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.trailing) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(layout.createsequentialgroup() .add(225, 225, 225) .add(jlabel1)) .add(layout.createsequentialgroup() .add(99, 99, 99) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(jlabel7) .add(jlabel6))) .add(layout.createsequentialgroup() .add(126, 126, 126) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.trailing) .add(idgo) .add(layout.createsequentialgroup() .add(nameout) .add(18, 18, 18) .add(idout) .add(18, 18, 18) .add(desout))) .add(18, 18, 18) .add(numout))) .add(layout.createsequentialgroup() .addcontainergap() .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.trailing) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(jlabel2) .add(layout.createsequentialgroup() .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(jlabel4) .add(jlabel5) .add(jlabel3)) .add(18, 18, 18) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(namesearch, org.jdesktop.layout.grouplayout.preferred_size, 207, org.jdesktop.layout.grouplayout.preferred_size) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading, false) .add(desin) .add(numin) .add(namein) .add(idin, org.jdesktop.layout.grouplayout.preferred_size, 202, org.jdesktop.layout.grouplayout.preferred_size))))) .add(idsearch, org.jdesktop.layout.grouplayout.preferred_size, 207, org.jdesktop.layout.grouplayout.preferred_size)))) .add(layout.createsequentialgroup() .add(220, 220, 220) .add(namego))) .addcontainergap(144, short.max_value)) ); layout.setverticalgroup( layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading) .add(layout.createsequentialgroup() .addcontainergap() .add(jlabel1) .addpreferredgap(org.jdesktop.layout.layoutstyle.related, 31, short.max_value) .add(jlabel14) .add(18, 18, 18) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline) .add(jlabel2) .add(namein, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)) .addpreferredgap(org.jdesktop.layout.layoutstyle.related) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline) .add(jlabel3) .add(idin, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)) .addpreferredgap(org.jdesktop.layout.layoutstyle.related) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline) .add(jlabel4) .add(desin, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)) .addpreferredgap(org.jdesktop.layout.layoutstyle.related) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.trailing) .add(numin, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size) .add(jlabel5)) .addpreferredgap(org.jdesktop.layout.layoutstyle.related) .add(addgo) .add(18, 18, 18) .add(jlabel15) .add(24, 24, 24) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline) .add(namesearch, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size) .add(jlabel6)) .add(18, 18, 18) .add(namego) .add(14, 14, 14) .add(jlabel16) .add(18, 18, 18) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline) .add(idsearch, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size) .add(jlabel7)) .add(18, 18, 18) .add(idgo) .add(32, 32, 32) .add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline) .add(nameout) .add(idout) .add(desout) .add(numout)) .add(64, 64, 64)) ); pack(); }// </editor-fold> private void idinactionperformed(java.awt.event.actionevent evt) { // todo add handling code here: } private void idgoactionperformed(java.awt.event.actionevent evt) { // search id } private void addgoactionperformed(java.awt.event.actionevent evt) { // add item string name, description; int identification, number; name = namein.gettext(); description = desin.gettext(); identification = integer.parseint(idin.gettext()); number = integer.parseint(numin.gettext()); inventory.add(new productinfo(name, description, identification, number)); namein.settext(""); desin.settext(""); idin.settext(""); numin.settext(""); } private void namegoactionperformed(java.awt.event.actionevent evt) { // search name } /** * @param args command line arguments */ public static void main(string args[]) { /* set nimbus , feel */ //<editor-fold defaultstate="collapsed" desc=" , feel setting code (optional) "> /* if nimbus (introduced in java se 6) not available, stay default , feel. * details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) { if ("nimbus".equals(info.getname())) { javax.swing.uimanager.setlookandfeel(info.getclassname()); break; } } } catch (classnotfoundexception ex) { java.util.logging.logger.getlogger(mventory.class.getname()).log(java.util.logging.level.severe, null, ex); } catch (instantiationexception ex) { java.util.logging.logger.getlogger(mventory.class.getname()).log(java.util.logging.level.severe, null, ex); } catch (illegalaccessexception ex) { java.util.logging.logger.getlogger(mventory.class.getname()).log(java.util.logging.level.severe, null, ex); } catch (javax.swing.unsupportedlookandfeelexception ex) { java.util.logging.logger.getlogger(mventory.class.getname()).log(java.util.logging.level.severe, null, ex); } //</editor-fold> /* create , display form */ java.awt.eventqueue.invokelater(new runnable() { public void run() { new mventory().setvisible(true); } }); } // variables declaration - not modify private javax.swing.jbutton addgo; private javax.swing.jtextfield desin; private javax.swing.jlabel desout; private javax.swing.jbutton idgo; private javax.swing.jtextfield idin; private javax.swing.jlabel idout; private javax.swing.jtextfield idsearch; private javax.swing.jbutton namego; private javax.swing.jtextfield namein; private javax.swing.jlabel nameout; private javax.swing.jtextfield namesearch; private javax.swing.jtextfield numin; private javax.swing.jlabel numout; private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel14; private javax.swing.jlabel jlabel15; private javax.swing.jlabel jlabel16; private javax.swing.jlabel jlabel2; private javax.swing.jlabel jlabel3; private javax.swing.jlabel jlabel4; private javax.swing.jlabel jlabel5; private javax.swing.jlabel jlabel6; private javax.swing.jlabel jlabel7; // end of variables declaration }
say productinfo
has following structure:
public class productinfo { private int id; private string name; private foo someotherfield; public int getid () { return id; } public string getname () { return name; } //... }
then can search arraylist<productinfo>
, using following code:
public class inventory { private arraylist<productinfo> pis = new arraylist<productinfo>(); public productinfo find (int id, string name) { for(productinfo pi : pis) { if(pi.getid() == id && objects.equals(pi.getname(),name)) { return pi; } } } }
this method should privided inventory
since controller pattern explicitly states should separate user interface data manipulation.
you can fetch data jtextfield
instances using:
string name = namein.gettext(); int id = integer.parse(idin.gettext());
finally need kind of handler method should job when user triggers event:
public class buttonhandler implements actionlistener { private inventory inventory; private jtextfield idin; private jtextfield namein; public buttonhandler(inventory inventory, jtextfield idin, jtextfield namein) { this.inventory = inventory; this.idin = idin; this.namein = namein; } public void actionperformed(actionevent e) { string name = namein.gettext(); int id = integer.parse(idin.gettext()); productinfo pi = inventory.find(name,id); //do pi } }
you need create such handler, , add listener:
buttonhandler handler = new buttonhandler(inventory,this.idin,this.namein); somebutton.addactionlistener(this);
finally coding guidelines in java:
- the name of field starts lowercase letter.
- as mentioned, use different classes, separate responsibilities , separate user interface data manipulation.
Comments
Post a Comment