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