java - Why is my if/else statement always skipping to the else -


i have tried reading every way can think of , life of me can't figure out why if/else statement in actionlistener never evaluate if statement true. program meant open jframe 3 panels. 2 of them have 8 random buttons letters on them. when button clicked supposed if it's vowel or consonant. program evaluates button consonant. not seeing logical flow of info in program?

import java.awt.borderlayout; import java.awt.container; import java.awt.eventqueue;  import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.border.emptyborder; import java.awt.flowlayout; import javax.swing.boxlayout; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.util.arraylist; import java.util.random;   public class jvowelconsenant extends jframe {  private jpanel contentpane; arraylist list = new arraylist(0);    /**  * launch application.  */ public static void main(string[] args) {              try {                 jvowelconsenant frame = new jvowelconsenant();                 frame.setvisible(true);             } catch (exception e) {                 e.printstacktrace();             }         }   /**  * create frame.  */ public jvowelconsenant() {     setdefaultcloseoperation(jframe.exit_on_close);     setbounds(100, 100, 585, 371);     contentpane = new jpanel();     contentpane.setborder(new emptyborder(5, 5, 5, 5));     setcontentpane(contentpane);     contentpane.setlayout(new boxlayout(contentpane, boxlayout.x_axis));      jpanel panel = new jpanel();     contentpane.add(panel);     panel.setlayout(new gridlayout(2, 2, 0, 0));      jpanel panel_1 = new jpanel();     contentpane.add(panel_1);     panel_1.setlayout(new gridlayout(2, 2, 0, 0));      jpanel panel_2 = new jpanel();     contentpane.add(panel_2);     panel_2.setlayout(new gridlayout(2, 2, 0, 0));      string[] alphabet = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};      jbutton[] letters = new jbutton[26];     (int 0; i<8; i++) {                random_letters();     }        for(int i=0; i<26; ++i) {         letters[i] = new jbutton();         letters[i].settext(alphabet[i]);           letters[i].addactionlistener(new actionlistener() {             public void actionperformed(actionevent arg0) {                      if(arg0.getsource().equals("a")||arg0.getsource().equals("e")|| arg0.getsource().equals("i")||arg0.getsource().equals("o")||arg0.getsource().equals("u")){                         jlabel letter_identity = new jlabel("this letter vowel");                         panel_2.removeall();                         panel_2.add(letter_identity);                         panel_2.revalidate();                     }                     else{                         jlabel letter_identity = new jlabel("this letter consenant");                         panel_2.removeall();                         panel_2.add(letter_identity);                         panel_2.revalidate();                     }              }         });     }       for(int = 0; i<4;++i){     panel.add(letters[(int) list.get(i)]);     panel_1.add(letters[(int) list.get(i+4)]);     }  }  void random_letters(){     random random = new random();     int random_1 = random.nextint(26);     int check_point =exclusion(random_1);     while(check_point == 0){         random_1= random.nextint(26);         check_point = exclusion(random_1);     } }  int exclusion(int x){     int marker = 0;     if(!list.contains(x)){         list.add(x);         marker = 1;     }     return marker;   }   } 

arg0.getsource() return reference object triggered event, in case, jbutton.

instead, should able use actionevent#getactioncommand instead.

string cmd = agr0.getactioncommmand(); //... 

if you're using java 7+, may find easier use switch statement...

switch (cmd) {     case "a":     case "e":     case "i":     case "o":     case "u":         // vowel         break;     default:         // consenant         break; } 

see how write action listeners more details


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -