class= " lineNumbers " de
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 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
|
class= de
class= " de l'id= le " codeSnippet686305 de dans ce cas-ci, tout que nous avons besoin est dans le paquet de javax.tv.xlet. Pour plus complexe
des exemples de // nous importerions également des classes d'org.dvb.* et des autres api de MHP ou de Java.
importation javax.tv.xlet.* ;
// la classe principale de chaque Xlet doit mettre en application cette interface - si elle ne fait pas ceci,
// l'intergiciel de MHP ne peut pas le courir.
la classe publique FirstXletExample met en application javax.tv.xlet. Xlet
{
// chaque Xlet a un contexte de Xlet, juste comme le contexte d'applet ce des applet dans a
la page Web de // sont données. Ceci est créé par l'intergiciel de MHP et dedans passé au
// Xlet comme paramètre à la méthode d'initXlet ().
contexte privé de javax.tv.xlet.XletContext ;
Champ privé de // A pour tenir l'état actuel. C'est nécessaire parce que le startXlet ()
la méthode de // s'appelle pour commencer le Xlet pour la première fois et pour faire également
Résumé de // Xlet de l'état fait une pause. Ceci classé nous laisse maintenir si nous sommes
// commençant pour la première fois.
booléen privé hasBeenStarted ;
/**
* Chaque Xlet devrait avoir un constructeur de défaut qui ne prend aucun argument.
* Aucun autre constructeur n'obtiendra appelé.
*
FirstXletExample public ()
{
// le constructeur devrait ne contenir rien. Toute initialisation
// devrait être fait dans la méthode d'initXlet (), ou dans la méthode de startXlet
// s'il est time-- ou ressource-intensif. De cette façon, l'intergiciel de MHP
// peut commander quand l'initialisation se produit dans beaucoup un plus prévisible
manière de //
}
/**
* Initialiser le Xlet. Le contexte pour ce Xlet obtiendra passé dedans à ceci
* la méthode, et une référence à lui devraient être stockées au cas où il aurait besoin plus tard.
* C'est l'endroit où n'importe quelle initialisation devrait être faite, à moins qu'elle prenne
* beaucoup de temps ou ressources. Si quelque chose va mal, puis
* XletStateChangeException devrait obtenir jeté pour faire le système d'exécution savoir
* que le Xlet ne peut pas être initialisé.
*
l'initXlet vide de public (contexte de javax.tv.xlet.XletContext) jette javax.tv.xlet.XletStateChangeException
{
magasin de // une référence au contexte de Xlet que le Xlet exécute dedans
this.context = contexte ;
// le Xlet encore n'a pas été commencé pour la première fois, ainsi ensemble
// cette variable à faux.
hasBeenStarted = faux ;
// puisque c'est un Xlet simple, nous imprimerons juste un message au rendement de correction
System.out.println (« la méthode d'initXlet () s'est appelée. Notre contexte de Xlet est » + contexte) ;
}
/**
* Commencer le Xlet. En ce moment le Xlet peut se montrer sur l'écran et
* commencer à agir l'un sur l'autre avec l'utilisateur, ou faire toutes les tâches ressource-intensives. Ceux-ci
est-ce que * des genres de fonction devraient être maintenus dans le startXlet (), et devraient *not* être faits
* dans l'initXlet ().
*
* Comme avec l'initXlet (), s'il y a n'importe quel problème cette méthode devrait jeter
* XletStateChangeException pour dire au système d'exécution qu'il ne peut pas commencer.
*
* Un des pièges communs est que la méthode de startXlet () doit retourner au son
* visiteur. Ceci signifie que les fonctions principales du Xlet devraient être faites dedans
* des autres fil. La méthode de startXlet () devrait vraiment juste créer ce fil
* et la commencer, puis retourner.
*
le startXlet vide de public () jette javax.tv.xlet.XletStateChangeException
{
// encore, nous imprimons un message sur le rendement de correction pour dire à l'utilisateur cela
// quelque chose se produit. Dans ce cas-ci, ce que nous imprimons dépend de
// si le Xlet commence pour la première fois, ou s'il est
// fait une pause et reprend
// avons-nous été commencés ?
si (hasBeenStarted) {
System.out.println (« la méthode de startXlet () s'est appelée pour reprendre le Xlet après qu'elle ait été faite une pause. Bonjour encore, monde ! ") ;
}
autrement {
System.out.println (« la méthode de startXlet () s'est appelée pour commencer le Xlet pour la première fois. Bonjour, monde ! ") ;
// placent la variable qui nous dit que nous avons été commencés réellement
hasBeenStarted = rectifier ;
}
}
/**
* Font une pause le Xlet. Malheureusement, il n'est pas clair à n'importe qui (y compris
* gens qui ont écrit les spécifications de MHP) ce que signifie ceci. Généralement, il
* signifie que le Xlet devrait libérer toutes les ressources rares qu'il emploie,
* arrêter tous les fils inutiles et s'enlever de l'écran.
*
* À la différence des autres méthodes, le pauseXlet () ne peut pas jeter une exception pour indiquer
* un problème avec l'état changeant. Quand on dit le Xlet pour faire une pause lui-même, il
* doit faire cela.
*
pauseXlet vide de public ()
{
// puisque nous n'avons rien à faire une pause, nous dirons à l'utilisateur que nous sommes
// faisant une pause par l'impression un message sur le rendement de correction.
System.out.println (« la méthode de pauseXlet () s'est appelée. Heure du coucher… ") ;
}
/**
* Arrêter le Xlet. Le paramètre booléen indique la méthode si le Xlet doit
* obéir cette demande. Si la valeur du paramètre est vraie, le Xlet doit se terminer
* et le système d'exécution supposera que quand la méthode retourne, le Xlet a
* terminé. Si la valeur f le paramètre est fausse, le Xlet peut demander qu'il
* ne pas être tué, en jetant un XletStateChangeException. si l'intergiciel de MHP
* veut toujours tuer le Xlet, il devrait appeler le destroyXlet () encore avec
* paramètre réglé pour rectifier.
*
le destroyXlet vide de public (sans conditions booléen) jette javax.tv.xlet.XletStateChangeException
{
si (sans conditions) {
// nous avons été commandés nous terminer, ainsi nous en obéissons l'ordre poliment et libérons
ressources de //scarce que nous nous tenons.
System.out.println (« la méthode de destroyXlet () s'est appelée dire le Xlet de s'arrêter sans réserve. Au revoir, monde cruel ! ") ;
}
autrement {
// nous avons eu une demande polie de mourir, ainsi nous pouvons refuser cette demande si nous voulons.
System.out.println (« la méthode de destroyXlet () s'est appelée demande que l'application s'arrête, mais lui donner le choix. Ainsi, je déciderai pas à stop.") ;
// jetant un XletStateChangeException indique l'intergiciel de MHP qui
l'application de // voudrait continuer à fonctionner si elle a permis à.
jet nouveau XletStateChangeException (« svp ne pas me tuer ! ") ;
}
}
}
|