JavaScool:DocCreationProgletExemple : Différence entre versions

De Sciencinfolycee
Aller à : navigation, rechercher
m (help.xml)
m (Panel.java)
Ligne 31 : Ligne 31 :
 
= Panel.java =
 
= Panel.java =
  
C'est le fichier central de la proglet, en quelque sorte (ou au moins de son code Java). Il contient la description de la zone de Javascool réservée à la proglet (le 'panel') et le code à exécuter automatiquement au lancement de la proglet (initialiser des variables, créer des listeners, lancer des tâches de fond etc.)
+
C'est le fichier qui contient la description de l'objet graphique qui incarne la proglet.
 +
Cette classe Java implémente le code à exécuterau lancement de la proglet (initialisation des variables, lancer des tâches, etc..).
  
La classe Panel doit hériter de la classe JApplet. On créera donc une autre class, ProgletPanel, qui contiendra tous les éléments graphiques de la proglet. On se contentera donc dans la classe Panel d'implémenter la méthode init() de la classe JApplet et d'instancier la class ProgletPanel.
+
La classe Panel doit hériter d'un composant graphique tel que <tt>javax.swing.JPanel</tt>.
  
Notes :
+
Notes: le nom de la classe Proglet est fixé par les spécifications
  
* Le nom de la classe Proglet est fixé par les spécifications, mais celui de la classe ProgeltPanel ne l'est pas. En fait, cette classe peut très bien ne pas exister ou être définie comme classe privée dans la classe Panel.
+
Dans notre exemple les éléments clés sont:
* La classe Panel doit hériter de la classe java.applet.Applet mais il est en général plus simple de la faire hériter de javax.swing.JApplet. Ceci est autorisé car javax.swing.JApplet hérite elle-même de java.applet.Applet.
+
<pre>
* On utilise ici la fonction Macros.readString(). Plus d'informations dans la [?page=developers&action=faq#fsfgs FAQ]
+
package org.javascool.proglets.sampleCode;
* Consultez les [?page=developers&action=proglets spécifications d'une proglet]
+
import javax.swing.JPanel;
 +
import javax.swing.JLabel;
  
Code source du fichier Panel.java
+
public class Panel extends JPanel {
 
+
  // Construction de la proglet
import javax.swing.JApplet;
+
  public Panel() {
import org.javascool.tools.Macros;
+
    // On crée un label
+
    label = new JLabel("");
public class Panel extends JApplet {
+
    // Et on l'ajoute au panel
private static ProgletPanel panel=new ProgletPanel();
+
    add(label);
+
  }
/** Constructeur par défaut */
+
  // Ce label sera utilisé par la routine Functions.setMessage()
public Panel() {
+
  JLabel label;
// Affiche panel en tant que panel principal de cette applet
+
}
setContentPane(panel);
+
</pre>
}
 
 
/** Récupérer le ProgletPanel affiché */
 
public static ProgletPanel getPanel() {
 
return panel;
 
}
 
 
/** Juste pour montrer que cette méthode peut être implémentée */
 
public void init() {
 
        // On demande un texte à l'utilisateur et on l'affiche en label
 
panel.setText(Macros.readString());
 
}
 
}
 
  
 
= ProgletPanel.java =
 
= ProgletPanel.java =

Version du 20 août 2011 à 01:13

Cette page a pour but d'expliquer comment créer une proglet concrètement. Elle présente une proglet d'exemple, affichant simplement un label, et permettant à l'utilisateur d'interagir avec ce dernier.

  • Le code est commenté et disponible dans une archive disponible ZIP.
  • Il peut être exécuter en lançant ce fichier JAR.

proglet.pml

Ce fichier donne la description de la proglet, le nom de son icône et les auteurs

 title="Exemple de «proglet»"
 author="Guillaume Matheron <guillaume.quest@gmail.com>"
 icon="sample.png"

sample.png

Cette image est le logo de la proglet. Elle peut avoir n'importe quel nom mais celui-ci doit être mentionné dans le fichier proglet.pml

Note : il est quasi-indispensable que cette image soit au format png transparent. Sans cela il sera très difficile dee l'intégrer sur le site sans affecter son design

help.xml

Ce fichier définit la documentation pour l'utilisateur. Le fichier est écrit en XML. L'aide quant à comment rédiger ce fichier est disponible ici.

Il est possible, de créer plusieurs fichiers d'aide XML, mais ils seront tous convertis au format HTML, dans un fichier d'extension .htm. Toutes les pages d'aide peuvent être liées les unes aux autres, en utilisant l'extension .htm.

Note : le nom du fichier help.xml est fixé par les spécifications d'une proglet.

Panel.java

C'est le fichier qui contient la description de l'objet graphique qui incarne la proglet. Cette classe Java implémente le code à exécuterau lancement de la proglet (initialisation des variables, lancer des tâches, etc..).

La classe Panel doit hériter d'un composant graphique tel que javax.swing.JPanel.

Notes: le nom de la classe Proglet est fixé par les spécifications

Dans notre exemple les éléments clés sont:

package org.javascool.proglets.sampleCode;
import javax.swing.JPanel;
import javax.swing.JLabel;

public class Panel extends JPanel {
  // Construction de la proglet
  public Panel() {
    // On crée un label
    label = new JLabel("");
    // Et on l'ajoute au panel
    add(label);
  }
  // Ce label sera utilisé par la routine Functions.setMessage()
  JLabel label;
}

ProgletPanel.java

Ce fichier définit le panel qui sera affiché dans l'applet. La classe ProgletPanel doit donc étendre la classe java.awt.Panel.

Lors de sa construction elle crée un label et l'affiche en haut du panel. Elle définit aussi une méthode permettant de changer le texte du label, pour respecter l'encapsulation.

import java.awt.Panel;
import java.awt.Label;
import java.awt.BorderLayout;
import java.lang.String;

public class ProgletPanel extends Panel {
	/** Correspond au label affiché dans le panel de la proglet */
	private Label label;
	
	/** Construit un nouveau panel */
	public ProgletPanel() {
		// On crée un label
		label=new Label("");
		// Et on l'ajoute au panel
		add(label,BorderLayout.NORTH);
	}
	
	/** Change le texte affiché dans le label */
	public void setText(String text) {
		label.setText(text);
	}
}

Functions.java

Ce fichier définit les fonctions directement accessibles depuis Java's Cool, et qui permettent donc d'interagir avec la proglet

Dans cet exemple, nous définirons une méthode getText(String) qui permettra de changer le texte affiché dans le panel de la proglet. Toutes les méthodes de Fonctions doivent être statiques pour être accessibles depuis Java's Cool.

import java.lang.String;

public class Functions {
	/** Permet de changer le texte affiché sur le panel de la proglet */
	public static void setText(String text) {
		Panel.getPanel().setText(text);
	}
}