Esempio n. 1
0
  /**
   * Affiche les cases de la grille grâce à des JTextField pour les cases à remplir et des JLabel
   * pour les indices de somme dans le JPanel pan
   *
   * @param pan
   * @throws NumberFormatException
   */
  public void affichCase(JPanel pan) throws NumberFormatException {
    if (this.n != 0) {
      bloc.setValue(null);
      try {
        MaskFormatter format = new MaskFormatter("#");
        bloc = new JFormattedTextField(format);
      } catch (ParseException e2) {

      }
      pan.add(bloc);
      bloc.setHorizontalAlignment(SwingConstants.CENTER);
      bloc.addKeyListener(
          new KeyAdapter() {
            public void keyReleased(KeyEvent e) {
              try {
                if (Integer.valueOf(bloc.getText()) == n) {
                  Utilitaire.score -= juste;
                  juste = 1;
                  Utilitaire.score += juste;
                } else {
                  Utilitaire.score -= juste;
                  juste = 0;
                  Utilitaire.score += juste;
                }
              } catch (NumberFormatException e1) {

              }
            }
          });
    } else {
      Utilitaire.score -= juste;
      juste = 1;
      Utilitaire.score += juste;
      if (sX != 0)
        if (sY != 0) block.setText(String.format("%2d\\%2d", sX, sY));
        else block.setText(String.format("%2d\\  ", sX));
      else if (sY != 0) block.setText(String.format("  \\%2d", sY));

      block.setHorizontalAlignment(SwingConstants.CENTER);
      block.setBorder(null);
      block.setOpaque(true);
      block.setBackground(Color.BLACK);
      block.setForeground(Color.WHITE);
      pan.add(block);
    }
  }
  @Override
  public void installUI(JComponent c) {
    super.installUI(c);

    textFormattedField = (JFormattedTextField) c;

    textFormattedField.setFocusable(true);
    textFormattedField.setOpaque(false);
    textFormattedField.setMargin(new Insets(0, 0, 0, 0));
    textFormattedField.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
    textFormattedField.setFont(AdobeLookAndFeel.fontBold);
    textFormattedField.setForeground(AdobeLookAndFeel.colorText);
    textFormattedField.setSelectionColor(new Color(100, 100, 100));
    textFormattedField.setCaretColor(AdobeLookAndFeel.colorText);

    mouseAdapter =
        new MouseAdapter() {
          @Override
          public void mouseReleased(MouseEvent e) {
            textFormattedField.repaint();
          }

          @Override
          public void mousePressed(MouseEvent e) {
            textFormattedField.repaint();
          }

          @Override
          public void mouseClicked(MouseEvent e) {
            textFormattedField.repaint();
          }
        };
    textFormattedField.addMouseListener(mouseAdapter);

    keyAdapter =
        new KeyAdapter() {
          @Override
          public void keyPressed(KeyEvent e) {
            textFormattedField.repaint();
          }
        };
    textFormattedField.addKeyListener(keyAdapter);

    focusListener =
        new FocusAdapter() {
          @Override
          public void focusGained(FocusEvent e) {
            textFormattedField.repaint();
          }

          @Override
          public void focusLost(FocusEvent e) {
            textFormattedField.repaint();
          }
        };
    textFormattedField.addFocusListener(focusListener);

    propertyChangeListener =
        new PropertyChangeListener() {
          @Override
          public void propertyChange(PropertyChangeEvent evt) {
            textFormattedField.repaint();
          }
        };
    textFormattedField.addPropertyChangeListener(
        AccessibleContext.ACCESSIBLE_STATE_PROPERTY, propertyChangeListener);
  }