<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FJ2ME%2FClip</id>
		<title>Java/J2ME/Clip - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FJ2ME%2FClip"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/J2ME/Clip&amp;action=history"/>
		<updated>2026-04-21T23:07:53Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/J2ME/Clip&amp;diff=7299&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/J2ME/Clip&amp;diff=7299&amp;oldid=prev"/>
				<updated>2010-06-01T06:38:14Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:38, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/J2ME/Clip&amp;diff=7298&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/J2ME/Clip&amp;diff=7298&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Clipping Region ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//jad file (please verify the jar size)&lt;br /&gt;
/*&lt;br /&gt;
MIDlet-Name: ClippingRegion&lt;br /&gt;
MIDlet-Version: 1.0&lt;br /&gt;
MIDlet-Vendor: MyCompany&lt;br /&gt;
MIDlet-Jar-URL: ClippingRegion.jar&lt;br /&gt;
MIDlet-1: ClippingRegion, , ClippingRegion&lt;br /&gt;
MicroEdition-Configuration: CLDC-1.0&lt;br /&gt;
MicroEdition-Profile: MIDP-1.0&lt;br /&gt;
MIDlet-JAR-SIZE: 100&lt;br /&gt;
*/&lt;br /&gt;
import javax.microedition.lcdui.Alert;&lt;br /&gt;
import javax.microedition.lcdui.Canvas;&lt;br /&gt;
import javax.microedition.lcdui.rumand;&lt;br /&gt;
import javax.microedition.lcdui.rumandListener;&lt;br /&gt;
import javax.microedition.lcdui.Display;&lt;br /&gt;
import javax.microedition.lcdui.Displayable;&lt;br /&gt;
import javax.microedition.lcdui.Graphics;&lt;br /&gt;
import javax.microedition.lcdui.Image;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
public class ClippingRegion extends MIDlet {&lt;br /&gt;
  private Display display;&lt;br /&gt;
  private MyCanvas canvas;&lt;br /&gt;
  public ClippingRegion() {&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
    canvas = new MyCanvas(this);&lt;br /&gt;
  }&lt;br /&gt;
  protected void startApp() {&lt;br /&gt;
    display.setCurrent(canvas);&lt;br /&gt;
  }&lt;br /&gt;
  protected void pauseApp() {&lt;br /&gt;
  }&lt;br /&gt;
  protected void destroyApp(boolean unconditional) {&lt;br /&gt;
  }&lt;br /&gt;
  public void exitMIDlet() {&lt;br /&gt;
    destroyApp(true);&lt;br /&gt;
    notifyDestroyed();&lt;br /&gt;
  }&lt;br /&gt;
  public Display getDisplay() {&lt;br /&gt;
    return display;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyCanvas extends Canvas implements CommandListener {&lt;br /&gt;
  private Command exit = new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1);&lt;br /&gt;
  private ClippingRegion clippingRegion;&lt;br /&gt;
  private Image image = null;&lt;br /&gt;
  public MyCanvas(ClippingRegion clippingRegion) {&lt;br /&gt;
    this.clippingRegion = clippingRegion;&lt;br /&gt;
    &lt;br /&gt;
    addCommand(exit);&lt;br /&gt;
    setCommandListener(this);&lt;br /&gt;
    try {&lt;br /&gt;
      image = Image.createImage(70, 70);&lt;br /&gt;
      Graphics graphics = image.getGraphics();&lt;br /&gt;
      graphics.setColor(255, 0, 0);&lt;br /&gt;
      graphics.fillArc(10, 10, 60, 50, 180, 180);&lt;br /&gt;
    } catch (Exception error) {&lt;br /&gt;
      Alert alert = new Alert(&amp;quot;Failure&amp;quot;, &amp;quot;Creating Image&amp;quot;, null, null);&lt;br /&gt;
      alert.setTimeout(Alert.FOREVER);&lt;br /&gt;
      this.clippingRegion.getDisplay().setCurrent(alert);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  protected void paint(Graphics graphics) {&lt;br /&gt;
    if (image != null) {&lt;br /&gt;
      graphics.setColor(255, 255, 255);&lt;br /&gt;
      graphics.fillRect(0, 0, getWidth(), getHeight());&lt;br /&gt;
      graphics.setClip(35, 35, 40, 40);&lt;br /&gt;
      graphics.drawImage(image, 30, 30, Graphics.VCENTER | Graphics.HCENTER);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void commandAction(Command command, Displayable display) {&lt;br /&gt;
    if (command == exit) {&lt;br /&gt;
      clippingRegion.exitMIDlet();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Move a clipping region around a Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*--------------------------------------------------&lt;br /&gt;
* Clip.java&lt;br /&gt;
*&lt;br /&gt;
* Move a clipping region around a Canvas&lt;br /&gt;
*&lt;br /&gt;
* Example from the book:     Core J2ME Technology&lt;br /&gt;
* Copyright John W. Muchow   http://www.CoreJ2ME.ru&lt;br /&gt;
* You may use/modify for any non-commercial purpose&lt;br /&gt;
*-------------------------------------------------*/  &lt;br /&gt;
import javax.microedition.midlet.*;&lt;br /&gt;
import javax.microedition.lcdui.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
public class Clip extends MIDlet&lt;br /&gt;
{&lt;br /&gt;
  private Display  display;     // The display&lt;br /&gt;
  private ClipCanvas canvas;    // Canvas &lt;br /&gt;
 &lt;br /&gt;
  public Clip()&lt;br /&gt;
  {&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
    canvas  = new ClipCanvas(this);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  protected void startApp()&lt;br /&gt;
  {&lt;br /&gt;
    display.setCurrent( canvas );&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  protected void pauseApp()&lt;br /&gt;
  { }&lt;br /&gt;
  protected void destroyApp( boolean unconditional )&lt;br /&gt;
  { }&lt;br /&gt;
 &lt;br /&gt;
  public void exitMIDlet()&lt;br /&gt;
  {&lt;br /&gt;
    destroyApp(true);&lt;br /&gt;
    notifyDestroyed();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*--------------------------------------------------&lt;br /&gt;
* Class ClipCanvas&lt;br /&gt;
*&lt;br /&gt;
* Display the clipping region&lt;br /&gt;
*-------------------------------------------------*/&lt;br /&gt;
class ClipCanvas extends Canvas implements CommandListener&lt;br /&gt;
{&lt;br /&gt;
  private Command cmExit;  // Exit&lt;br /&gt;
  private Clip midlet;      // Main midlet&lt;br /&gt;
  private Image im = null; // Image to display&lt;br /&gt;
  private Random random;    // Get random number&lt;br /&gt;
  &lt;br /&gt;
  private int clipx = 0,  clipy = 0,  // View port &lt;br /&gt;
  &lt;br /&gt;
              clipw = 45, cliph = 45; // (clipping region)&lt;br /&gt;
              &lt;br /&gt;
  private int old_clipx = 0, old_clipy = 0; // Last clipping region&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
  public ClipCanvas(Clip midlet)&lt;br /&gt;
  {&lt;br /&gt;
    this.midlet = midlet;&lt;br /&gt;
    &lt;br /&gt;
    // Create exit command &amp;amp; listen for events&lt;br /&gt;
    cmExit = new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1);&lt;br /&gt;
    addCommand(cmExit);&lt;br /&gt;
    setCommandListener(this);&lt;br /&gt;
    // Get random values for starting point&lt;br /&gt;
    random = new java.util.Random();&lt;br /&gt;
 &lt;br /&gt;
    // Make sure the entire clipping region is &lt;br /&gt;
    // visible on the display  &lt;br /&gt;
    clipx = Math.min((getWidth() - clipw),&lt;br /&gt;
                     (random.nextInt() &amp;gt;&amp;gt;&amp;gt; 1) % getWidth());&lt;br /&gt;
    clipy = Math.min((getHeight() - cliph),&lt;br /&gt;
                     (random.nextInt() &amp;gt;&amp;gt;&amp;gt; 1) % getHeight());&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      // Create immutable image&lt;br /&gt;
      im = Image.createImage(&amp;quot;/house.png&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    catch (java.io.IOException e)&lt;br /&gt;
    {&lt;br /&gt;
      System.err.println(&amp;quot;Unable to locate or read .png file&amp;quot;);&lt;br /&gt;
    }    &lt;br /&gt;
  } &lt;br /&gt;
  protected void paint(Graphics g)&lt;br /&gt;
  {&lt;br /&gt;
    if (im != null)&lt;br /&gt;
    {&lt;br /&gt;
      // Clear only the previous clipping region&lt;br /&gt;
      g.setColor(255, 255, 255);&lt;br /&gt;
      g.fillRect(old_clipx, old_clipy, clipw, cliph);      &lt;br /&gt;
      // Set the new clipping region&lt;br /&gt;
      g.setClip(clipx, clipy, clipw, cliph);&lt;br /&gt;
      // Draw image  &lt;br /&gt;
      g.drawImage(im, 0, 0, Graphics.LEFT | Graphics.TOP);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void commandAction(Command c, Displayable d)&lt;br /&gt;
  {&lt;br /&gt;
    if (c == cmExit)&lt;br /&gt;
      midlet.exitMIDlet();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  protected void keyPressed(int keyCode)&lt;br /&gt;
  {&lt;br /&gt;
    // Save the last clipping region&lt;br /&gt;
    old_clipx = clipx;&lt;br /&gt;
    old_clipy = clipy;&lt;br /&gt;
    &lt;br /&gt;
    switch (getGameAction(keyCode))&lt;br /&gt;
    {&lt;br /&gt;
      case UP: &lt;br /&gt;
        // Move clipping region up 3 pixels&lt;br /&gt;
        if (clipy &amp;gt; 0)&lt;br /&gt;
          clipy = Math.max(0, clipy - 3);&lt;br /&gt;
        break;&lt;br /&gt;
      &lt;br /&gt;
      case DOWN:&lt;br /&gt;
        // Move clipping region down 3 pixels      &lt;br /&gt;
        if (clipy + cliph &amp;lt; getHeight())&lt;br /&gt;
          clipy = Math.min(getHeight(), clipy + 3);&lt;br /&gt;
        break;&lt;br /&gt;
        &lt;br /&gt;
      case LEFT:&lt;br /&gt;
       // Move clipping region left 3 pixels&lt;br /&gt;
       if (clipx &amp;gt; 0)&lt;br /&gt;
          clipx = Math.max(0, clipx - 3);&lt;br /&gt;
        break;&lt;br /&gt;
      case RIGHT:&lt;br /&gt;
        // Move clipping region right 3 pixels      &lt;br /&gt;
        if (clipx + clipw &amp;lt; getWidth())&lt;br /&gt;
          clipx = Math.min(getWidth(), clipx + 3);&lt;br /&gt;
       break;&lt;br /&gt;
       &lt;br /&gt;
      case FIRE:&lt;br /&gt;
        // Show the whole screen by reseting &lt;br /&gt;
        // the clipping region to the entire display&lt;br /&gt;
        clipx = clipy = 0;&lt;br /&gt;
        clipw = getWidth();&lt;br /&gt;
        cliph = getHeight();       &lt;br /&gt;
   }        &lt;br /&gt;
    repaint();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>