java - JCheckBoxes not being disabled after I setEnable(false) them -


if have 30 checkboxes , don't want more 6 of them checked. have int keeping track of how many checked. each box has item listener calls method see int at, , if reaches 6, method calls setenabled(false) on each box. however, after int number_of_boxes_checked reaches 6 boxes don't disabled.

import java.awt.borderlayout; import java.awt.eventqueue;  import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import javax.swing.jcheckbox; import java.awt.gridlayout; import javax.swing.event.changelistener; import javax.swing.event.changeevent; import java.awt.event.itemlistener; import java.awt.event.itemevent; import javax.swing.jlabel;  public class jlottery2 extends jframe {  private jpanel contentpane; int number_of_boxes_checked = 1; jcheckbox[] checkbox = new jcheckbox[30]; jlabel label = new jlabel("0");  /**  * launch application.  */ public static void main(string[] args) {     eventqueue.invokelater(new runnable() {         public void run() {             try {                 jlottery2 frame = new jlottery2();                 frame.setvisible(true);             } catch (exception e) {                 e.printstacktrace();             }         }     }); }  /**  * create frame.  */ public jlottery2() {     setdefaultcloseoperation(jframe.exit_on_close);     setbounds(100, 100, 586, 360);     contentpane = new jpanel();     contentpane.setborder(new emptyborder(5, 5, 5, 5));     setcontentpane(contentpane);     contentpane.setlayout(null);      jpanel panel = new jpanel();     panel.setbounds(10, 11, 321, 299);     contentpane.add(panel);     panel.setlayout(new gridlayout(5, 6, 0, 0));      jpanel panel_1 = new jpanel();     panel_1.setbounds(330, 11, 230, 299);     contentpane.add(panel_1);      panel_1.add(label);      (int = 0; < 30; ++i) {         checkbox[i] = new jcheckbox(integer.tostring(i + 1));         panel.add(checkbox[i]);     }     (int = 0; < 30; ++i) {         checkbox[i].additemlistener(new itemlistener() {             public void itemstatechanged(itemevent e) {                 limit_checkboxes();             }         });     } }  public void limit_checkboxes() {     label.settext(integer.tostring(number_of_boxes_checked));     if (number_of_boxes_checked > 6) {         (int = 0; > 30; ++i) {             checkbox[i].setenabled(false);         }     } else {         ++number_of_boxes_checked;      } } } 

in limit_checkboxes() method, want i < 30, not i > 30 in loop. see embedded comment.

    label.settext(integer.tostring(number_of_boxes_checked));     if (number_of_boxes_checked > 6) {         (int = 0; < 30; ++i) { //<- bug here, fixed             checkbox[i].setenabled(false);         }     } else {         ++number_of_boxes_checked;    } 

Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -