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