Källkoden för /anders.enges/java/scribb4.asp
<!--#include file="../inc/navstuff.asp" -->
<H4>Övningar</H4>
<p>Prova gärna följande:</p>
<ol>
<li>Ändra <b><FONT color=#0000ff>private</FONT> Color theColor</b><br />
till</br />
<FONT color=#0000ff>private <b>static</b> </FONT> Color theColor<br />
i MyStroke klassen.<br />
Vad händer, och varför händer detta. Slå upp ordet <b>static</b> i hjälpen...<br /><br /></li>
<li>Lägg <b>till</b> följande kod i java filen ni håller på med:
<pre>
<FONT COLOR="#008000">// En application som gör samma sak </FONT>
<FONT COLOR="#008000">// fast den finns i samma fil kommer den att skapa </FONT>
<FONT COLOR="#008000">// en separat .class fil</FONT>
<FONT COLOR="#0000FF">klass</FONT> ScribbleApp <FONT COLOR="#0000FF">extends</FONT> Frame
<FONT COLOR="#800000">{</FONT>
     <FONT COLOR="#008000">// måste komma ihåg hur vi startade</FONT>
     <FONT COLOR="#008000">// normala starten</FONT>
     <FONT COLOR="#0000FF">public</FONT> ScribleApp<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT>
     <FONT COLOR="#800000">{</FONT>
         <FONT COLOR="#0000FF">super</FONT><FONT COLOR="#800000">(</FONT><FONT COLOR="#FF0000">"Scribble</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// kör förälderns konstruerare (sätter titel)</font>
         initAll<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000"></FONT>
     <FONT COLOR="#800000">}</FONT>
     <FONT COLOR="#008000">//initieringen - åberopas från konstruerarna</FONT>
     <FONT COLOR="#0000FF">private</FONT> <FONT COLOR="#0000FF">void</FONT> initAll<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT>
     <FONT COLOR="#800000">{</FONT>
         setSize<FONT COLOR="#800000">(</FONT><FONT COLOR="#800080">200</FONT><FONT COLOR="#800000">,</FONT> <FONT COLOR="#800080">200</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// måste sätta en storlek på fönstret</font>
         <FONT COLOR="#0000FF">this</FONT>.setLayout<FONT COLOR="#800000">(</FONT><FONT COLOR="#0000FF">new</FONT> BorderLayout<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT>
         <FONT COLOR="#0000FF">this</FONT>.add<FONT COLOR="#800000">(</FONT><FONT COLOR="#FF0000">"CENTER"</FONT><FONT COLOR="#800000">,</FONT> <FONT COLOR="#0000FF">new</FONT> MyDrawing<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// sätt in drawing panelen</font>

         <FONT COLOR="#008000">// en anonym funktion för close händelsen</FONT>
         addWindowListener<FONT COLOR="#800000">(</FONT><FONT COLOR="#0000FF">new</FONT> WindowAdapter<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT> <FONT COLOR="#800000">{</FONT>
             <FONT COLOR="#0000FF">public</FONT> <FONT COLOR="#0000FF">void</FONT> windowClosing<FONT COLOR="#800000">(</FONT>WindowEvent e<FONT COLOR="#800000">)</FONT> <FONT COLOR="#800000">{</FONT>
             Exit<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT>
             <FONT COLOR="#800000">}</FONT>
             <FONT COLOR="#800000">}</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT>
     <FONT COLOR="#800000">}</FONT>
     <FONT COLOR="#0000FF">public</FONT> <FONT COLOR="#0000FF">void</FONT> exit<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT> <FONT COLOR="#800000">{</FONT>
         setVisible<FONT COLOR="#800000">(</FONT><FONT COLOR="#0000FF">false</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// göm fönstret</font>
         dispose<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// "fimpa" objektet för fönstret</font>
         System.exit<FONT COLOR="#800000">(</FONT><FONT COLOR="#800080">0</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// åter till operativsystemet</font>
     <FONT COLOR="#800000">}</FONT>

     <FONT COLOR="#008000">// rätt basic main...</FONT>
     <FONT COLOR="#0000FF">public</FONT> <FONT COLOR="#0000FF">static</FONT> <FONT COLOR="#0000FF">void</FONT> main<FONT COLOR="#800000">(</FONT>String args<FONT COLOR="#800000">[</FONT><FONT COLOR="#800000">]</FONT><FONT COLOR="#800000">)</FONT> <FONT COLOR="#800000">{</FONT>
         ScribbleApp w <FONT COLOR="#800000">=</FONT> <FONT COLOR="#0000FF">New</FONT> ScribbleApp<FONT COLOR="#800000">(</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// skapa fönstret</font>
         w.setVisible<FONT COLOR="#800000">(</FONT><FONT COLOR="#0000FF">TRUE</FONT><FONT COLOR="#800000">)</FONT><FONT COLOR="#800000">;</FONT> <FONT COLOR="#008000">// visa fönstret</font>
     <FONT COLOR="#800000">}</FONT>
<FONT COLOR="#800000">}</FONT>
</pre>
<br />
Tyvärr finns det ett antal stavfel (<b>8</b> st) i ovanstående kod som du bör rätta till för att få det att fungera! Gör det först. OBS! Ett av stavfelen kommer INTE kompilatorn att märka!<br /><br /></li>
<li>Vad har ovanstående kod för betydelse? Hur kan du köra programmet, förutom som applet? Tips: Tag i J++ Project, <I>projektnamn </i>Propeties och tag en titt på kombon för <b>When the project runs. load:</b><br /><br /></li>
<li>Hur kan du ändra placeringen av fönstret när det startar. Tips: skriv <b>this.</b> på raden efter <b>setSize</b> och se vad du hittar. Prova placera fönstret mer i mitten.<br /><br /></li>
<li>Prova skriva <b>this.getToolkit().getScreenSize().</b> i initAll finktionen<br />Kan du lista ut hur vi får programmet i MITTEN av skärmen?<br /><br /></li>
<li>Vad har Toolkit:en för betydelse? Tag en litet titt på de funktioner som finns i denna och se om där finns någontinga användbart. Hittar du någonting "kul"?</br /><br /></li>
<li>Se om du lyckas få fönstret inställt så att det INTE går att förändra storleken på det. Tips: skriv <b>this.</b> i initAll finktionen och se vad du hittar.</br /><br /></li>
<li>Det finns (konstigt nog) inget enkelt sätt att programmatiskt maximera ett fönster. Kan du simulera detta genom att göra programmet maximalt stort innan det visas? Tips: Se punkt 5<br /><br /></li>
<li><i>Om du tror dig vara bra på VB kan det vara kul att se om du, i VB, lyckas "spara" punkterna för att sedan kunna rita ut dessa vid behov. Inte så enkelt i VB heller, eller hur?</i></li>
</ol>
<!--#include file="../inc/footer.asp" -->