Canvas поддерживает pointer
MouseMoved(MouseEvent me)
На ME:
pointer – мышь для мобильных устройств. Телефон должен быть touchscreen.
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Prog_5_1 extends MIDlet
{
private Display dsp;
private MyCanvas cv;
public Prog_5_1()
{
cv= new MyCanvas();
}
public void startApp()
{
dsp=Display.getDisplay(this);
dsp.setCurrent(cv);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
class MyCanvas extends Canvas
{
int Regim;
int mouseX,mouseY; // координаты мыши
MyCanvas()
{
mouseX=0;
mouseY=0;
Regim=0;
}
protected void paint(Graphics g)
{
Image im = null;
try
{
im=Image.createImage("/Images/face1.jpg");
}
catch (Exception e)
{
}
g.drawImage(im, 10, 10, Graphics.LEFT | Graphics.TOP);
if(Regim==1) // после point дорисовать
{
g.setColor(100,50,200);
g.fillRect(mouseX, mouseY, 30, 40);
}
}
public void pointerPressed (int x, int y)
{
}
public void pointerReleased (int x, int y)
{
mouseX=x;
mouseY=y;
Regim=1;
repaint();
}
public void PointerDragged (int x, int y)
{
}
}
}
2)Обработка событий от клавиатуры
SE:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Prog_5_2
{
JFrame form;
pictureBox pc;
Prog_5_2()
{
form = new JFrame();
form.setSize (500,500);
form.setTitle ("лабораторная 5");
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setLayout(null);
pc=new pictureBox();
pc.setBounds(0, 0, 300, 300);
form.add(pc);
pc.setFocusable(true); // перехват клавиш когда в фокусе
form.show();
}
public static void main (String args[])
{
Prog_5_2 f;
f= new Prog_5_2();
}
}
class pictureBox extends JPanel