
|
A
NehogyMar2MIDlet.java
forrás letöltése.
Illetve alább bemutatjuk a forrás szÃnesen
formázott és besorszámozott
változatát. ErrÅ‘l talán könnyebb Ãgy
kérdezni és beszélni róla, mint a
könyvben lévő formázatlanról.
1 /*
2 * NehogyMar2MIDlet.java
3 *
4 * Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged!
5 * nbatfai@gmail.com
6 *
7 * Ezt a forrásfájlt (és a hozzá esetlegesen kapcsolódó erőforrásokat,
8 * például képeket) letöltheted a http://www.eurosmobil.hu/NehogyMar/
9 * cÃmrÅ‘l.
10 *
11 */
12 /**
13 * A könyv második programozási példája, vászonra
14 * rajzol egy "tájképet".
15 *
16 * @author Bátfai Norbert, nbatfai@gmail.com
17 * @version 0.0.1
18 */
19 public class NehogyMar2MIDlet
20 extends javax.microedition.midlet.MIDlet
21 implements javax.microedition.lcdui.CommandListener{
22 /** A mobiltelefon kijelzőjét reprezentáló objektum. */
23 javax.microedition.lcdui.Display mobilKijelzoje =
24 javax.microedition.lcdui.Display.getDisplay(this);
25 /** A Kilépés gombot reprezentáló objektum. */
26 javax.microedition.lcdui.Command kilepesGomb =
27 new javax.microedition.lcdui.Command("Kilépés",
28 javax.microedition.lcdui.Command.EXIT, 20);
29 /** Egy "grafikus" képernyőt reprezentáló objektum. */
30 javax.microedition.lcdui.Canvas grafikusKepernyo;
31 /** Mit tegyek én (this, azaz az aktuális MIDlet objektum)
32 * ha elindÃtottak? */
33 public void startApp() {
34 // ElkészÃtek egy "grafikus" képernyÅ‘t: egy vásznat
35 grafikusKepernyo =
36 new javax.microedition.lcdui.Canvas() {
37 /** A vászonra a paint(Graphics g) módszere rajzol rá,
38 * ebben a Graphics g objektumon keresztül tudok rajzolni. */
39 public void paint(javax.microedition.lcdui.Graphics g) {
40 // Az ég
41 g.setColor(0x0000ff); // Red=00, Green=00, Blue=ff,
42 // legyen a rajzolás szÃne a kék!
43 g.fillRect(0, 0, getWidth(), getHeight()); // kitölt
44 // egy négyzetet, ami betakarja az egész vásznat:
45 // (bal felső sarok oszlop, sor, szélesség, magasság)
46 // A föld
47 g.setColor(0xba8f5d);
48 g.fillRect(0, 2*getHeight()/3, getWidth(), getHeight()/3);
49 // E kettő határa
50 g.setColor(0xffffff);
51 g.drawLine(0, 2*getHeight()/3, getWidth(), 2*getHeight()/3);
52 // A fatörzs
53 g.setColor(0x7c4300);
54 g.fillRect(getWidth()/3, getHeight()/2+getHeight()/10,
55 getWidth()/16, getHeight()/5);
56 // A lomb
57 g.setColor(0x00ff00);
58 g.fillArc(getWidth()/3-2*getWidth()/16,
59 getHeight()/2+getHeight()/10-getHeight()/5,
60 5*getWidth()/16,
61 getHeight()/5,
62 0, 360); // kitölt egy ellipszist:
63 // (befoglaló négyzet bal felső sarkának oszlopa,
64 // sora, szélesség, magasság, melyik foktól, mennyit)
65 // A nap
66 g.setColor(0xf4ec10);
67 g.fillArc(5*getWidth()/7, getHeight()/14,
68 getWidth()/7, getHeight()/7,
69 0, 360);
70 // A kiÃrás
71 g.setColor(0xe0dfc8);
72 g.drawString("Nehogy már a mobilod...",
73 getWidth(), getHeight(),
74 javax.microedition.lcdui.Graphics.BOTTOM|
75 javax.microedition.lcdui.Graphics.RIGHT);
76 }
77
78 };
79 // Legyen a kijelzÅ‘n az imént készÃtett
80 // "grafikus" képernyő látható!
81 mobilKijelzoje.setCurrent(grafikusKepernyo);
82 // Legyen a "karakteres" képernyőn a Kilépés parancs!
83 grafikusKepernyo.addCommand(kilepesGomb);
84 // Aztán, ha kattintanak rajta, akkor majd
85 // én (this, azaz az aktuális MIDlet objektum)
86 // reagálok erre a commandAction() viselkedésemben.
87 grafikusKepernyo.setCommandListener(this);
88 }
89 /** Mit tegyek én (this, azaz az aktuális MIDlet objektum)
90 * ha futásom közben jön egy SMS, vagy hÃvja valaki a
91 * tulajomat? */
92 public void pauseApp() {
93 }
94 /** Mit tegyek én, ha futásomnak vége... */
95 public void destroyApp(boolean unconditional) {
96 }
97 /** Mit tegyek, ha valami esemény keletkezett? */
98 public void commandAction(javax.microedition.lcdui.Command
99 command,javax.microedition.lcdui.Displayable displayable) {
100 // Ha a Kilépés gombra nyomtak, akkor
101 if (command == kilepesGomb)
102 // jelzem, hogy kipusztÃtom magam.
103 notifyDestroyed();
104 }
105 }
106
|