java - Get value from ActionListener from one class for use in another Class -


i'm having issue actionlisteners.

currently generating organismid in 1 class when button pressed. want use generated organismid in class though i'm having problems.

this snippet of code: 1st class:

public void actionperformed(actionevent e) {  string item = (string) maincombobox.getselecteditem();     object o = subitems.get(item);     string organismcomboitem = (string) subcombobox.getselecteditem();   // inserts relevant organisms subcombobox     if (treearray.contains(organismcomboitem)) {         //system.out.println(treearray.indexof(organismcomboitem));         string selectedid = idarray.get(treearray.indexof(organismcomboitem));         organismid = selectedid;          setorganismid(organismid);      } }  public string getorganismid() { return organismid; } public void setorganismid(string orgid) { organismid = orgid; } 

2nd class:

private mylistener  number = new mylistener();     string organismid = number.getorganismid(); 

currently organismid still displaying null in second class opposed value generated first class.

i'm sure there's relatively simple solution , have spent time trying research though nothing found seemed work last resort.

here 2 classes in full:

class 1:

import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.bufferedreader; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; import java.util.arraylist; import java.util.hashtable; import java.util.treeset; import java.util.logging.level; import java.util.logging.logger; import javax.swing.defaultcomboboxmodel;  import javax.swing.jbutton; import javax.swing.jcombobox; import javax.swing.jlabel;  public class mylistener implements actionlistener{  private int clickcount = 0;  private jbutton addbutton; private jbutton subtractbutton; private jlabel label; private jcombobox maincombobox; private jcombobox subcombobox; public static string organismid;    private hashtable subitems = new hashtable(); private arraylist<string> treearray = new arraylist<string>(); private arraylist<string> idarray = new arraylist<string>(); private arraylist<string> chromalveolataidarray = new arraylist<string>(); private arraylist<string> metazoaidarray = new arraylist<string>(); private arraylist<string> mycetozoaidarray = new arraylist<string>(); private arraylist<string> viridiplantaeidarray = new arraylist<string>(); private arraylist<string> virusesidarray = new arraylist<string>(); private treeset<string> chromalveolatatreeset = new treeset<string>(); private treeset<string> viridiplantaetreeset = new treeset<string>(); private treeset<string> metazoatreeset = new treeset<string>(); private treeset<string> mycetozoatreeset = new treeset<string>(); private treeset<string> virusestreeset = new treeset<string>();   string[] treeitems = {"select tree", "chromalveolata", "metazoa",     "mycetozoa", "viridiplantae", "viruses"};   public mylistener(){   }      public mylistener(jbutton addbutton, jlabel label, jcombobox   maincombobox,   jcombobox subcombobox,  jbutton subtractbutton){     this.addbutton = addbutton;      this.label = label;     this.maincombobox = maincombobox;     this.subcombobox = subcombobox;     this.subtractbutton = subtractbutton;      bufferedreader breader = null;     try {         breader = new bufferedreader(new filereader("organisms.txt"));         //arraylist<person> peoplelist = new arraylist<person>();         // breader.readline(); // read first line         string line = null;         arraylist<string> organismidarray = new arraylist<string>();         arraylist<string> organismarray = new arraylist<string>();            treeset<string> treeset = new treeset<string>();          while ((line = breader.readline()) != null) {  string[] treeitems = {"select tree", "chromalveolata", "metazoa",     "mycetozoa", "viridiplantae", "viruses"};             string[] peopleinfo = line.split("\\t|\\;");             // system.out.println(peopleinfo[3]);              string id = ">" + peopleinfo[0];             string organism = peopleinfo[2];             string tree = peopleinfo[3];              treearray.add(organism);             idarray.add(id);             //system.out.println(treearray);             // system.out.println(organism);              populatesubcombo("chromalveolata", chromalveolatatreeset, tree,  organism);             populatesubcombo("metazoa", metazoatreeset, tree, organism);             populatesubcombo("mycetozoa", mycetozoatreeset, tree, organism);             populatesubcombo("viridiplantae", viridiplantaetreeset, tree, organism);             populatesubcombo("viruses", virusestreeset, tree, organism);              populateorganismid("chromalveolata", tree, chromalveolataidarray, id);             populateorganismid("metazoa", tree, metazoaidarray, id);             populateorganismid("mycetozoa", tree, mycetozoaidarray, id);             populateorganismid("viridiplantae", tree, viridiplantaeidarray, id);             populateorganismid("viruses", tree, virusesidarray, id);              organismidarray.add(id);             organismarray.add(organism);             treeset.add(tree);              string[] defaultitems = {"> please select tree"};             subitems.put(treeitems[0], defaultitems);              string[] chromalveolataitems = chromalveolatatreeset.toarray(new   string[chromalveolatatreeset.size()]);             subitems.put(treeitems[1], chromalveolataitems);              string[] mycetozoaitems = mycetozoatreeset.toarray(new string[mycetozoatreeset.size()]);             subitems.put(treeitems[3], mycetozoaitems);              string[] metazoaitems = metazoatreeset.toarray(new string[metazoatreeset.size()]);             subitems.put(treeitems[2], metazoaitems);              string[] viridiplantaeitems = viridiplantaetreeset.toarray(new string[viridiplantaetreeset.size()]);             subitems.put(treeitems[4], viridiplantaeitems);              string[] virusesitems = virusestreeset.toarray(new string[virusestreeset.size()]);             subitems.put(treeitems[5], virusesitems);          }     } catch (filenotfoundexception ex) {         logger.getlogger(maturedataoutput.class.getname()).log(level.severe, null, ex);      } catch (ioexception ex) {         logger.getlogger(dissertation1.class.getname()).log(level.severe, null, ex);     } {         try {             breader.close();         } catch (ioexception ex) {              logger.getlogger(maturedataoutput.class.getname()).log(level.severe, null, ex);         }     }  }  public void actionperformed(actionevent e) {  string item = (string) maincombobox.getselecteditem();     object o = subitems.get(item);     string organismcomboitem = (string) subcombobox.getselecteditem();   // inserts relevant organisms subcombobox     if (treearray.contains(organismcomboitem)) {         //system.out.println(treearray.indexof(organismcomboitem));         string selectedid = idarray.get(treearray.indexof(organismcomboitem));         organismid = selectedid;          setorganismid(organismid);      }     if (o == null) {         subcombobox.setmodel(new defaultcomboboxmodel());      } else {         subcombobox.setmodel(new defaultcomboboxmodel((string[]) o));     }      if(e.getsource() == addbutton){         clickcount++;     }     else if(e.getsource() == subtractbutton){         system.out.println(organismid);     }       label.settext("you've clicked " + clickcount + " times.");  }   public static treeset<string> populatesubcombo(string orgname,     treeset<string> treeset, string tree, string organism){               if (orgname.equals(tree)) {                 treeset.add("- please select organism");                 treeset.add(organism);              //   list.add(id);                  //  system.out.println(viridiplantaeorganismarray);             }  return treeset;   }   public static arraylist<string> populateorganismid(string orgname, string tree, arraylist<string>list, string id){      if (orgname.equals(tree)) {                list.add(id);  } return list; }      public static void setorganismid(string orgid) { organismid = orgid; }  public string getorganismid() { return organismid; }   } 

class 2:

import static dissertation1.dissertation1.average; import static dissertation1.dissertation1.gcperc; import static dissertation1.dissertation1.max; import static dissertation1.dissertation1.min; import java.awt.color; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.bufferedreader; import java.io.file; import java.io.filereader; import java.util.arraylist; import javax.swing.jbutton; import javax.swing.jfilechooser; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jtextfield;  public class mylistener1 implements actionlistener {  private final jfilechooser filechooser; private bufferedreader br;  private final jtextfield maxmirnalength; private final jtextfield minsrnalength; private final jtextfield gcpercmirna; private final jtextfield minhairpinlength; string currentline;   arraylist<integer> hairpinorganisms = new arraylist<integer>(); arraylist<integer> matureorganisms = new arraylist<integer>(); arraylist<integer> maturegccontent = new arraylist<integer>();   private jbutton openmaturebutton; private jbutton openhairpinbutton; private jbutton generateparametersbutton;  private file hairpinfile; private file maturefile; int returnval;  private mylistener number;   public mylistener1(jbutton openmaturebutton, jbutton openhairpinbutton,     jbutton generateparametersbutton, jtextfield maxmirnalength, jtextfield minsrnalength, jtextfield gcpercmirna, jtextfield minhairpinlength){     this.openmaturebutton = openmaturebutton;     this.openhairpinbutton = openhairpinbutton;     this.generateparametersbutton = generateparametersbutton;     this.maxmirnalength = maxmirnalength;     this.minsrnalength = minsrnalength;     this.gcpercmirna = gcpercmirna;     this.minhairpinlength = minhairpinlength;        filechooser = new jfilechooser(); }  public void actionperformed(actionevent e) {     arraylist<integer> gcorgperc = new arraylist<integer>();     //number = new mylistener();     string organismid = mylistener.organismid;   //  string organismid = number.getorganismid();           //  system.out.println(treearray);     // arraylist<string> organismsstring = new arraylist<string>();      boolean printlines = false;     stringbuilder organism = new stringbuilder();        if (e.getsource() == openhairpinbutton) {         returnval = filechooser.showopendialog(null);         if (returnval == jfilechooser.approve_option) {             hairpinfile = filechooser.getselectedfile();             //file[] file = hairpinfilechooser.getselectedfiles();             //read file             //system.out.println(organismid);             system.out.println(organismid);         }     }       else if (e.getsource() == openmaturebutton) {         returnval = filechooser.showopendialog(null);         if (returnval == jfilechooser.approve_option) {             maturefile = filechooser.getselectedfile();             //file[] file = hairpinfilechooser.getselectedfiles();             //read file           }     }     else if (e.getsource() == generateparametersbutton){           try {                 br = new bufferedreader(new filereader(hairpinfile));         } catch (exception error) {                 error.printstacktrace(); //minhairpinlength.settext(" ");             }         try{                 //if (file.getname().matches("hairpin.fa") ||   file.getname().matches("high_conf_hairpin.fa")) {                  while ((currentline = br.readline()) != null) {                     if (printlines) {                         if (currentline.startswith(">")) {                             // have reached next organism, stop   printing                             printlines = false;                               organism.setlength(0);                          } else {                             // still printing current organism                             organism.append(currentline);                          }                     }                      if (currentline.startswith(organismid)) {                             // print line, , start printing lines   after (we don't want append current line)                         //organism.append(currentline);                         printlines = true;                             //won't need following line - used error   control                              //organisms.add(organism.length());                         //label.settext("min is" + min(organisms));                     }                    }             } catch (exception error) {                  error.printstacktrace(); //minhairpinlength.settext(" ");             }          try {                 br = new bufferedreader(new filereader(maturefile));                  while ((currentline = br.readline()) != null) {                     if (printlines) {                         if (currentline.startswith(">")) {                             // have reached next organism, stop printing                             printlines = false;                             // add current organism our collection                             matureorganisms.add(organism.length());                                // student student = new   student(organismcomboitem, organism.length(), gcperc(organism), 25);                              organism.setlength(0);                         } else {                             // still printing current organism                             organism.append(currentline);                         }                     }                      if (currentline.startswith(organismid)) {                             // print line, , start printing lines after (we don't want append current line)                         //organism.append(currentline);                         system.out.println(organismid);                         printlines = true;                      }                     }             } catch (exception error) {                 error.printstacktrace();             }          minhairpinlength.settext("" + min(hairpinorganisms));        // minhairpinlength.setbackground(color.white);                      maxmirnalength.settext("" + max(matureorganisms));                     maxmirnalength.setbackground(color.red);                      minsrnalength.settext("" + min(matureorganisms));                     minsrnalength.setbackground(color.red);                      gcpercmirna.settext("" + average(maturegccontent));                     gcpercmirna.setbackground(color.red);                      system.out.println(hairpinorganisms); } }} 

any appreciated! :)

yous should have reference mylistener1 class in mylistener able set organismid it, when action performed.

public class mylistener implements actionlistener {     ...     actionlistener mylistener1;     ...     public mylistener(..., actionlistener mylistener1){         this.mylistener1 = mylistener1;         ...     }      public void actionperformed(actionevent e) {         // logic of getting organismid here         mylistener1.setorganismid(organismid)         ...     }   public class mylistener1 implements actionlistener {    ...    string organismid;    ...    public void setorganismid(string organismid) {        this.organismid = organismid    } } 

Comments