/** * 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); }