Cep Telefonlarındaki Pointer'ı(Kalem) Dinleyen Bir Midlet
Giriş
Bu örnekte cep telefonlarında kullanılan kalem(pointer) dinlenmektedir. Pointer tıklandığında veya kaldırıldığında x,y noktaları ekrana çizilmektedir.
1 import javax. microedition. midlet. * ;
2 import javax. microedition. lcdui. * ;
3 import javax. microedition. io. * ;
4 import java. io. * ;
5 import java. util. * ;
6 public class PointerTestMidlet extends MIDlet{
7 public void startApp( ) {
8 TestCanvas canvas=new TestCanvas( this ) ;
9 Display. getDisplay( this ) . setCurrent( canvas) ;
10 }
11 public void pauseApp( ) { }
12 public void destroyApp( boolean b) { }
13 public void exit( ) {
14 destroyApp( false ) ;
15 notifyDestroyed( ) ;
16 }
17 class TestCanvas extends Canvas implements CommandListener{
18 private PointerTestMidlet middlet;
19 private Command exitCommand=new Command( "Exit", Command. EXIT, 1) ;
20 String s="";
21 public TestCanvas( PointerTestMidlet middlet) {
22 this . middlet=middlet;
23 addCommand( exitCommand) ;
24 setCommandListener( this ) ;
25 }
26 public void commandAction( Command c, Displayable d) {
27 if ( c==exitCommand) {
28 middlet. exit( ) ;
29 }
30 }
31 public void paint( Graphics g) {
32 System. out. print( "Paint") ;
33 clear( g) ;
34 g. drawString( s, 30, 30, Graphics. BASELINE|Graphics. HCENTER) ;
35 }
36 public void pointerPressed( int x, int y) {
37 System. out. println( " Pressed X: "+ x+ " Y: "+ y) ;
38 s=" Pressed X: "+ x+ " Y: "+ y;
39 repaint( ) ;
40 }
41 public void pointerReleased( int x, int y) {
42 System. out. println( " Released X: "+ x+ " Y: "+ y) ;
43 s=" Pressed X: "+ x+ " Y: "+ y;
44 repaint( ) ;
45 }
46 public void pointerDragged( int x, int y) {
47 System. out. println( " Dragged X: "+ x+ " Y: "+ y) ;
48 s=" Pressed X: "+ x+ " Y: "+ y;
49 repaint( ) ;
50 }
51 private void clear( Graphics g) {
52 System. out. print( "C Aloo") ;
53 g. setColor( 255, 255, 255) ;
54 g. fillRect( 0, 0, getWidth( ) , getHeight( ) ) ;
55 g. setColor( 0, 0, 0) ;
56 }
57 }
58 }
Midletlerde pointer dinlemek için Canvas class'ını kullanmalısınız. Bu iş için Canvas class'ının
pointerPressed(int x,int y)
pointerReleased(int x,int y)
pointerDragged(int x,int y)
method'ları kullanılmaktadır. Yine Canvas class'ında ki hasPointerEvents() ile cep telefonunun press ve releas olayını destekleyip desteklemediğini öğrenebilirsiniz. hasPointerMotionEvents() ise drag işleminin desteklenip desteklenmedğini bildirir.
x,y noktaları hem canvas çizilmektedir Hem de System out'una basılmaktıdır.
Dosya Listesi