예제 #1
0
파일: Arene.java 프로젝트: clem822/bl
  /**
   * Verifie que les caracteristiques du personnage sont valides (pour eviter la triche).
   *
   * @param personnage personnage
   * @return vrai si les caracteristiques sont valides (entre min et max)
   */
  private boolean verifieCaracts(Personnage personnage) {
    boolean res = true;
    HashMap<Caracteristique, Integer> caracts = personnage.getCaracts();

    int valeurTemp;

    for (Caracteristique c : caracts.keySet()) {
      valeurTemp = caracts.get(c);

      if (valeurTemp < c.getMin() || valeurTemp > c.getMax()) {
        res = false;
      }
    }

    return res;
  }
  /** Initialise les composants de la fenetre. */
  private void initComponents() {
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    setPreferredSize(new Dimension(460, 425));
    setResizable(false);
    setAlwaysOnTop(true);

    // grid layout de 1 colonne et de nbCaract() + 4 lignes (nom, position, bouton)
    getContentPane().setLayout(new GridLayout(Caracteristique.nbCaracts() + 3, 1, 0, 0));

    // nom
    JPanel panelNom = new JPanel();

    JLabel labelNom = new JLabel("Nom de la potion");
    panelNom.add(labelNom);

    valueNom = new JTextField();
    valueNom.setPreferredSize(new Dimension(150, 28));
    panelNom.add(valueNom);

    getContentPane().add(panelNom);

    // caracteristiques
    caractPanels = new ArrayList<SaisieCaracteristique>();

    for (Caracteristique c : Caracteristique.values()) {
      caractPanels.add(new SaisieCaracteristique(c));
    }

    for (SaisieCaracteristique cPanel : caractPanels) getContentPane().add(cPanel);

    // position
    positionPanel = new SaisiePosition();
    getContentPane().add(positionPanel);

    // bouton
    panelBouton = new JPanel();
    clicPourPoser = new JCheckBox();
    lancePotion = new JButton();

    clicPourPoser.setText("Cliquer sur l'arene pour poser la potion");
    clicPourPoser.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            JCheckBox cb = (JCheckBox) e.getSource();

            if (cb.isSelected()) {
              positionPanel.desactiveAleatoire();
            }
          }
        });

    panelBouton.add(clicPourPoser);

    lancePotion.setText("Lancer la potion");
    panelBouton.add(lancePotion);
    lancePotion.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent event) {
            lancePotion();
          }
        });

    getContentPane().add(panelBouton);

    pack();
  }