📄 package-summary.html
字号:
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Graphics</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Display</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Displayable</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Command</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">Canvas</span>;
<span class="example_proclamation">import</span> javax.microedition.lcdui.<span class="example_class">CommandListener</span>;
<span class="example_proclamation">import</span> java.util.<span class="example_class">Timer</span>;
<span class="example_proclamation">import</span> java.util.<span class="example_class">TimerTask</span>;
<span class="example_proclamation">import</span> javax.microedition.m3g.*;
<span class="example_modifier">public</span> <span class="example_proclamation">class</span> <span class="example_class">JesterTestlet</span> <span class="example_proclamation">extends</span> <span class="example_class">MIDlet</span> <span class="example_proclamation">implements</span> <span class="example_class">CommandListener</span>
{
<span class="example_modifier">private</span> <span class="example_class">Display</span> myDisplay = <span class="example_literal">null</span>;
<span class="example_modifier">private</span> <span class="example_class">JesterCanvas</span> myCanvas = <span class="example_literal">null</span>;
<span class="example_modifier">private</span> <span class="example_class">Timer</span> myRefreshTimer = <span class="example_reserved">new</span> <span class="example_class">Timer</span>();
<span class="example_modifier">private</span> <span class="example_class">TimerTask</span> myRefreshTask = <span class="example_literal">null</span>;
<span class="example_modifier">private</span> <span class="example_class">Command</span> exitCommand = <span class="example_reserved">new</span> <span class="example_class">Command</span>(<span class="example_string">"Exit"</span>, <span class="example_class">Command</span>.<span class="example_constant">ITEM</span>, 1);
<span class="example_modifier">private</span> <span class="example_class">World</span> myWorld = <span class="example_literal">null</span>;
<span class="example_comment">/**
* JesterTestlet - default constructor.
*/</span>
<span class="example_modifier">public</span> <span class="example_class">JesterTestlet</span>()
{
<span class="example_comment">// Set up the user interface.</span>
myDisplay = <span class="example_class">Display</span>.getDisplay(<span class="example_reserved">this</span>);
myCanvas = <span class="example_reserved">new</span> <span class="example_class">JesterCanvas</span>(<span class="example_reserved">this</span>);
myCanvas.setCommandListener(<span class="example_reserved">this</span>);
myCanvas.addCommand(exitCommand);
}
<span class="example_comment">/**
* startApp()
*/</span>
<span class="example_modifier">public</span> <span class="example_type">void</span> startApp() <span class="example_proclamation">throws</span> <span class="example_class">MIDletStateChangeException</span>
{
myDisplay.setCurrent(myCanvas);
<span class="example_control">try</span>
{
<span class="example_comment">// Load a file.</span>
<span class="example_class">Object</span>3D[] roots =
<span class="example_class">Loader</span>.load(<span class="example_string">"http://www.example.com/m3g/samples/simple.m3g"</span>);
<span class="example_comment">// Assume the world is the first root node loaded.</span>
myWorld = (<span class="example_class">World</span>)roots[0];
<span class="example_comment">// Force a repaint so that we get the update loop started.</span>
myCanvas.repaint();
}
<span class="example_control">catch</span>(<span class="example_class">Exception</span> e)
{
e.printStackTrace();
}
}
<span class="example_comment">/**
* pauseApp()
*/</span>
<span class="example_modifier">public</span> <span class="example_type">void</span> pauseApp()
{
<span class="example_comment">// Release resources.</span>
myWorld = <span class="example_literal">null</span>;
}
<span class="example_comment">/**
* destroyApp()
*/</span>
<span class="example_modifier">public</span> <span class="example_type">void</span> destroyApp(<span class="example_type">boolean</span> unconditional) <span class="example_proclamation">throws</span> <span class="example_class">MIDletStateChangeException</span>
{
myRefreshTimer.cancel();
myRefreshTimer = <span class="example_literal">null</span>;
<span class="example_comment">// Release resources.</span>
myWorld = <span class="example_literal">null</span>;
}
<span class="example_comment">/**
* MIDlet paint method.
*/</span>
<span class="example_modifier">public</span> <span class="example_type">void</span> paint(<span class="example_class">Graphics</span> g)
{
<span class="example_comment">// We are not fully initialised yet; just return.</span>
<span class="example_control">if</span>(myCanvas == <span class="example_literal">null</span> || myWorld == <span class="example_literal">null</span>)
<span class="example_control">return</span>;
<span class="example_comment">// Delete any pending refresh tasks.</span>
<span class="example_control">if</span>(myRefreshTask != <span class="example_literal">null</span>)
{
myRefreshTask.cancel();
myRefreshTask = <span class="example_literal">null</span>;
}
<span class="example_comment">// Get the current time.</span>
<span class="example_type">long</span> currentTime = <span class="example_class">System</span>.currentTimeMillis();
<span class="example_comment">// Update the world to the current time.</span>
<span class="example_type">int</span> validity = myWorld.animate((<span class="example_type">int</span>)currentTime);
<span class="example_comment">// Render to our Graphics.</span>
<span class="example_class">Graphics</span>3D myGraphics3D = <span class="example_class">Graphics</span>3D.getInstance();
myGraphics3D.bindTarget(g);
myGraphics3D.render(myWorld);
myGraphics3D.releaseTarget();
<span class="example_comment">// Subtract time taken to do the update.</span>
validity -= <span class="example_class">System</span>.currentTimeMillis() - currentTime;
<span class="example_control">if</span>(validity < 1)
{ <span class="example_comment">// The validity is too small; allow a minimum of 1ms.</span>
validity = 1;
}
<span class="example_comment">// If the validity is not infinite schedule a refresh task.</span>
<span class="example_control">if</span>(validity < 0x7fffffff)
{
<span class="example_comment">// Create a new refresh task.</span>
myRefreshTask = <span class="example_reserved">new</span> <span class="example_class">RefreshTask</span>();
<span class="example_comment">// Schedule an update.</span>
myRefreshTimer.schedule(myRefreshTask, validity);
}
}
<span class="example_comment">/**
* Handle commands.
*/</span>
<span class="example_modifier">public</span> <span class="example_type">void</span> commandAction(<span class="example_class">Command</span> cmd, <span class="example_class">Displayable</span> disp)
{
<span class="example_control">if</span> (cmd == exitCommand)
{
<span class="example_control">try</span>
{
destroyApp(<span class="example_literal">false</span>);
notifyDestroyed();
}
<span class="example_control">catch</span>(<span class="example_class">Exception</span> e)
{
e.printStackTrace();
}
}
}
<span class="example_comment">/**
* Inner class for refreshing the view.
*/</span>
<span class="example_modifier">private</span> <span class="example_proclamation">class</span> <span class="example_class">RefreshTask</span> <span class="example_proclamation">extends</span> <span class="example_class">TimerTask</span>
{
<span class="example_modifier">public</span> <span class="example_type">void</span> run()
{
<span class="example_comment">// Get the canvas to repaint itself.</span>
myCanvas.repaint();
}
}
<span class="example_comment">/**
* Inner class for handling the canvas.
*/</span>
<span class="example_proclamation">class</span> <span class="example_class">JesterCanvas</span> <span class="example_proclamation">extends</span> <span class="example_class">Canvas</span>
{
<span class="example_class">JesterTestlet</span> myTestlet;
<span class="example_comment">/**
* Construct a new canvas
*/</span>
<span class="example_class">JesterCanvas</span>(<span class="example_class">JesterTestlet</span> <span class="example_class">Testlet</span>) { myTestlet = <span class="example_class">Testlet</span>; }
<span class="example_comment">/**
* Initialize self.
*/</span>
<span class="example_type">void</span> init() { }
<span class="example_comment">/**
* Cleanup and destroy.
*/</span>
<span class="example_type">void</span> destroy() { }
<span class="example_comment">/**
* Ask myTestlet to paint itself
*/</span>
<span class="example_modifier">protected</span> <span class="example_type">void</span> paint(<span class="example_class">Graphics</span> g) { myTestlet.paint(g); }
}
}</pre></DD></DD></DL>
<HR>
<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<EM><B>Nov 19, 2003</B></EM></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
PREV PACKAGE
NEXT PACKAGE</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
<A HREF="package-summary.html" TARGET="_top"><B>NO FRAMES</B></A>
<SCRIPT> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT><A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A></NOSCRIPT></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->
<HR>
<EM>Copyright © 2003 Nokia Corporation. See the <a href="../../../overview-summary.html#Copyright">Copyright Notice</a> for details.</EM>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -