public void setPressed(boolean b) {
      if ((isPressed() == b) || !isEnabled()) {
        return;
      }

      if (b == false && isArmed()) {

        if (this.isSelected()) {
          if (label.isUnderline()) {
            label.setUnderline(false);
            setSelected(false);
          } else {
            label.setUnderline(true);
          }

        } else {
          setSelected(true);
        }
      }

      if (b) {
        stateMask |= PRESSED;
      } else {
        stateMask &= ~PRESSED;
      }

      fireStateChanged();

      if (!isPressed() && isArmed()) {
        int modifiers = 0;
        AWTEvent currentEvent = EventQueue.getCurrentEvent();
        if (currentEvent instanceof InputEvent) {
          modifiers = ((InputEvent) currentEvent).getModifiers();
        } else if (currentEvent instanceof ActionEvent) {
          modifiers = ((ActionEvent) currentEvent).getModifiers();
        }
        fireActionPerformed(
            new ActionEvent(
                this,
                ActionEvent.ACTION_PERFORMED,
                getActionCommand(),
                EventQueue.getMostRecentEventTime(),
                modifiers));
      }
    }
  public IkenshoUndelineIntegerCheckBox() {
    super();
    check.setModel(new IkensyoUndelineIntegerCheckBoxButtonModel(text));
    try {
      jbInit();
    } catch (Exception e) {
      e.printStackTrace();
    }

    text.addMouseListener(
        new MouseAdapter() {
          int flag = FREE;
          static final int FREE = 0;
          static final int PRESS = 1;
          static final int ENTER = 2;

          public void mousePressed(MouseEvent e) {
            flag |= PRESS;
            if (!check.hasFocus()) {
              check.requestFocus();
            }
          }

          public void mouseReleased(MouseEvent e) {
            if ((flag & (PRESS | ENTER)) != (PRESS | ENTER)) {
              return;
            }

            if (check.isSelected()) {
              if (text.isUnderline()) {
                check.setSelected(false);
                text.setUnderline(false);
              } else {
                text.setUnderline(true);
              }
            } else {
              // 未選択ならば選択
              check.setSelected(true);
            }
            if (!check.hasFocus()) {
              check.requestFocus();
            }
            flag &= ~PRESS;
          }

          public void mouseEntered(MouseEvent e) {
            flag |= ENTER;
          }

          public void mouseExited(MouseEvent e) {
            flag &= ~ENTER;
          }
        });
  }
 public void setUnderlineBindPath(String underlineBindPath) {
   text.setBindPath(underlineBindPath);
 }
 public String getText() {
   return text.getText();
 }
 public String getUnderlineBindPath() {
   return text.getBindPath();
 }