1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| /*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.applet.Applet;
import java.awt.*;
public class SetGenerator extends Applet {
MySet A;
int Nums[]; // liste des indices des éléments choisis
int n; // nombre d'éléments
int wel = 64; // largeur standard des icones
int hel = 64; // hauteur standard des icones
MediaTracker tracker;
Image elepics[];
String imdir = "PICS/";
Image offImage;
Graphics offGraphics;
int width = 320;// les dimensions de l'écran
int height = 286;
private int posystring() {
return height - 20;
}
private int posxi(int n) {
return (n / 4) * wel;
}
private int posyi(int n) {
return (n % 4) * hel;
}
private void initimages() {
for (int i = 0; i < n; i++) {
elepics[i] = getImage(getDocumentBase(), imdir + MySet.ALL[Nums[i]].filename);
tracker.addImage(elepics[i], i);
}
}
/**
* Initialization method that will be called after the applet is loaded
* into the browser.
*/
@Override
public void init() {
// TODO start asynchronous download of heavy resources
// récupération des paramètres javascript
// de l'applette
String nom = getParameter("Nom");
String strn = getParameter("nbelts");
//n = 1 + ((int) (Math.random() * 50)) % 20;
n = Integer.parseInt(strn);
Nums = new int[n];
for (int i = 0; i < n; i++) {
String sei = getParameter(nom + Integer.toString(i));
int ei = Integer.parseInt(sei);
Nums[i] = ei;
}
// construction de l'objet MySet
A = new MySet(nom, n, Nums);
// initialisation des images
elepics = new Image[n];
tracker = new MediaTracker(this);
initimages();
// fond noir
setBackground(Color.BLACK);
// générer l'image en double buffer
offImage = createImage(width, height);
offGraphics = offImage.getGraphics();
paintFrame(offGraphics);
}
@Override
public void stop() {
offImage = null;
offGraphics = null;
}
public void paintFrame(Graphics g) {
for (int i = 0; i < n; i++) {
g.drawImage(elepics[i], posxi(i), posyi(i), null);
}
g.setColor(Color.WHITE);
Font font = new Font("Arial", Font.PLAIN, 16);
g.setFont(font);
g.drawString(A.to_string(), 0, posystring());
}
// TODO overwrite start(), stop() and destroy() methods
@Override
public void paint(Graphics g) {
if (!tracker.checkAll(true)) {
g.drawString("chargement en cours....", 10, 20);
repaint(100);
return;
}
// recopier le buffer sur l'écran
paintFrame(offGraphics);
g.drawImage(offImage, 0, 0, null);
}
} |
Partager