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 - Guide.java

Guide.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.  *
  29.  * @author nophiq
  30.  */
  31. public class Guide extends JFrame implements ActionListener, KeyListener {
  32.   private JButton chiudi;
  33.   private JTextArea panel;
  34.   private JScrollPane barrePanel;
  35.  
  36.   /** Creates a new instance of Guide */
  37.   public Guide() {
  38.     this.setTitle("Tutorial");
  39.     this.setLayout(new BorderLayout());
  40.    
  41.     panel = new JTextArea();
  42.     panel.setEditable(false);
  43.     panel.setLineWrap(true);
  44.     panel.setWrapStyleWord(true);
  45.    
  46.     barrePanel = new JScrollPane(panel);
  47.     barrePanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  48.     barrePanel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  49.     barrePanel.setMinimumSize(new Dimension(600, 500));
  50.     barrePanel.setPreferredSize(new Dimension(600, 500));
  51.     this.add(barrePanel, BorderLayout.CENTER);
  52.    
  53.     chiudi = new JButton("Chiudi");
  54.     chiudi.addActionListener(this);
  55.     this.add(chiudi, BorderLayout.SOUTH);
  56.    
  57.     this.addTextTutorial(panel);
  58.    
  59.     this.pack();
  60.     this.setVisible(true);
  61.   }
  62.  
  63.   public void addTextTutorial(JTextArea jt) {
  64.     jt.append("Questo programma (beta) è il risultato dell'intenzione di realizzare un programma " +
  65.         "che apprenda nuove conoscenze. Il suo ambito sono le gerarchie famigliari. I linguaggi di programmazione " +
  66.         "utilizzati sono stati Java e Prolog (integrato a Java attraverso le librerie tuProlog).\n\n" +
  67.         "In questo tutorial spiegherò brevemente come utilizzare il programma:\n" +
  68.         "- File > Nuovo => Svuota il programma da qualsiasi dato che l'utente ha inserito e vengono caricate le funzioni base presenti nel database.\n" +
  69.         "- File > Carica => Permette di caricare un file .pl dove sono presenti le regole della vostra gerarchia.\n" +
  70.         "- File > Salva => Permette di salvare in un file il database del programma. Deve avere necessariamente estensione .pl\n" +
  71.         "- File > Exit => Esce dal programma.\n\n" +
  72.         "- Aggiungi > Aggiungi Membro => Inserisci nel database un nuovo membro della famiglia.\n" +
  73.         "- Aggiungi > Aggiungi Relazione => Metti in relazioni i membri della famiglia con altri.\n" +
  74.         "- Aggiungi > Crea Relazione => Permette di creare delle nuove relazioni parentali, il programma conosce all'inizio " +
  75.         "solamente le relazioni 'padre', 'madre', 'marito', la vostra sarà in relazione a queste tre basilari. Potete dare il " +
  76.         "nome che volete alla nuova relazione. Per dare una miglior definizione della vostra nuova relazione, potete creare" +
  77.         "la stessa relazione più volte ma con membri differenti, in questo modo verranno elaborati diversi percorsi che" +
  78.         "soddisferanno la nuova relazione.\n\n" +
  79.         "- Visualizza > Elabora Gerarchia => Rappresenta il grafico delle parentele; ogni riga della virtuale tabella " +
  80.         "corrisponde ad una determinata generazione. La lettura del grafico è intuitivo.\n" +
  81.         "- Query > Esegui Query => La parte più interessante del programma; qui potete letteralmente porre delle domande " +
  82.         "al programma. Esempio: la query 'father X Y' mi riporta ogni relazione in cui X è padre di Y. Potete notare come X " +
  83.         "ed Y siano variabili, potete sostituire queste con dei nomi presenti nelle vostre parentele. Esempio: la query " +
  84.         "'father giovanni Y', riporta tutte le relazioni in cui giovanni è padre di qualcuno. Ovviamente potete eseguire " +
  85.         "delle query anche sulle relazioni che avete realizzato voi. Attenzione però perchè la relazione, per esempio, " +
  86.         "'nonno' ad una prima elaborazione può essere intesa come il nonno del padre! E non della madre!\n\n" +
  87.         "Buon divertimento\n\n" +
  88.         "Autore: Claudio Reggiani\n" +
  89.         "Alias: Nophiq\n" +
  90.         "Mail: nophiq@virgilio.it");
  91.   }
  92.  
  93.   public void actionPerformed(ActionEvent e) {
  94.     Object src = e.getSource();
  95.     if (src == chiudi) this.dispose();
  96.   }
  97.  
  98.   public void keyTyped(KeyEvent e) {}
  99.   public void keyPressed(KeyEvent e) {}
  100.   public void keyReleased(KeyEvent e) {
  101.     int src = e.getKeyCode();
  102.     if (src == KeyEvent.VK_ENTER) this.dispose();
  103.   }
  104.  
  105. }