Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Logic Familiar Hierarchy - AddNewMember.java

AddNewMember.java

Caricato da: Nophiq
Scarica il programma completo

  1. /************************************************************************
  2.  * Copyright (C) 19aa Claudio Reggiani alias Nophiq                     *
  3.  * Questo programma è software libero; è lecito ridistribuirlo e/o      *
  4.  * modificarlo secondo i termini della Licenza Pubblica Generica GNU    *
  5.  * come pubblicata dalla Free Software Foundation; o la versione 2      *
  6.  * della licenza o (a scelta) una versione successiva.                  *
  7.  *                                                                      *
  8.  * Questo programma è distribuito  nella speranza che sia utile, ma     *
  9.  * SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di        *
  10.  * COMMERCIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO. Si      *
  11.  * veda la Licenza Pubblica Generica GNU per avere maggiori dettagli.   *
  12.  *                                                                      *
  13.  * Ognuno dovrebbe avere ricevuto una copia  della Licenza Pubblica     *
  14.  * Generica GNU insieme a questo programma; in caso contrario, la si    *
  15.  * può ottenere dalla Free Software Foundation, Inc., 675 Mass Ave,     *
  16.  * Cambridge, MA 02139, Stati Uniti.                                    *
  17.  *                                                                      *
  18.  * Per contattarmi attraverso posta elettronica: nophiq@virgilio.it     *
  19.  ************************************************************************/
  20.  
  21. package albero;
  22.  
  23. import javax.swing.*;
  24. import java.awt.event.*;
  25. import java.awt.*;
  26. /**
  27.  *
  28.  * @author nophiq
  29.  */
  30. public class AddNewMember extends JFrame implements ActionListener, KeyListener {
  31.   private JLabel l1, l2;
  32.   private JTextField name;
  33.   private JButton add;
  34.   private GridBagConstraints c;
  35.   private ButtonGroup gender;
  36.   private JRadioButton male, female;
  37.   private ObjectPanel panelTree;
  38.  
  39.   /** Creates a new instance of addNewMember */
  40.   public AddNewMember(ObjectPanel panelTree) {
  41.     super("Aggiungi membro");
  42.     this.panelTree = panelTree;
  43.     initialize();
  44.   }
  45.  
  46.   public void initialize() {
  47.     this.setLayout(new GridBagLayout());
  48.     c = new GridBagConstraints();
  49.    
  50.     l1 = new JLabel("Nome: ");
  51.     setObjectSetting(c, 10, 10, 1, 1);
  52.     this.add(l1, c);
  53.    
  54.     name = new JTextField(20);
  55.     name.addKeyListener(this);
  56.     setObjectSetting(c, 20, 10, 1, 1);
  57.     this.add(name, c);
  58.    
  59.     l2 = new JLabel("Sesso: ");
  60.     setObjectSetting(c, 10, 20, 1, 1);
  61.     this.add(l2, c);
  62.    
  63.       male = new JRadioButton("maschio");
  64.       male.setSelected(true);
  65.       setObjectSetting(c, 20, 20, 1, 1);
  66.       this.add(male, c);
  67.  
  68.       female = new JRadioButton("femmina");
  69.       setObjectSetting(c, 30, 20, 1, 1);
  70.       this.add(female, c);
  71.      
  72.       gender = new ButtonGroup();
  73.       gender.add(male);
  74.       gender.add(female);
  75.    
  76.     add = new JButton("Aggiungi Membro");
  77.     add.addActionListener(this);
  78.     setObjectSetting(c, 20, 50, 1, 1);
  79.     this.add(add, c);
  80.    
  81.     this.pack();
  82.     this.setVisible(true);
  83.   }
  84.  
  85.   private void setObjectSetting(GridBagConstraints c, int gridx, int gridy, int gridheight, int gridwidth) {
  86.     c.gridx = gridx;  // Posizionamento Orizzontale
  87.     c.gridy = gridy;  // Posizionamento Verticale
  88.     c.gridheight = gridheight;
  89.     c.gridwidth = gridwidth;
  90.   }
  91.  
  92.   private void addMember() {
  93.     if (!name.getText().equals("") &&
  94.         name.getText().toLowerCase().charAt(0) >= 'a' &&
  95.         name.getText().toLowerCase().charAt(0) <= 'z') {
  96.       String s1 = this.name.getText();
  97.       s1 = s1.toLowerCase();
  98.       s1 = s1.replace(' ', '_');
  99.  
  100.       String s2 = "male";
  101.       if (female.isSelected()) s2 = "female";
  102.  
  103.       this.panelTree.addTheory("person("+s1+", '"+s2+"').");
  104.  
  105.       this.dispose();
  106.     }
  107.     else {
  108.       JOptionPane.showMessageDialog(null,
  109.           "Nome membro non inserito correttamente\n" +
  110.           "1) Il primo carattere deve essere una lettera dell'alfabeto", "Attenzione",
  111.           JOptionPane.INFORMATION_MESSAGE);
  112.     }
  113.   }
  114.  
  115.   public void actionPerformed(ActionEvent ev) {
  116.     Object src = ev.getSource();
  117.    
  118.     if (src == add) this.addMember();
  119.   }
  120.  
  121.   public void keyPressed(KeyEvent e) {}
  122.   public void keyTyped(KeyEvent e) {}
  123.   public void keyReleased(KeyEvent e) {
  124.     int src = e.getKeyCode();
  125.    
  126.     if (src == KeyEvent.VK_ENTER) {
  127.       this.addMember();
  128.     }
  129.   }
  130. }