j2me melih sakarya java teknolojileri derneği. jvm java kullanılan yerler ...

Post on 31-Mar-2015

239 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

J2MEJ2ME

Melih SakaryaMelih Sakarya

Java Teknolojileri DerneğiJava Teknolojileri Derneği

JVMJVM

JAVA Kullanılan yerlerJAVA Kullanılan yerler Windows-Linux-Unix-SolarisWindows-Linux-Unix-Solaris PDA larPDA lar Smart CardlarSmart Cardlar Cep TelefonlarıCep Telefonları AppletlerAppletler Local ApplicationlarLocal Applicationlar LEGOLEGO Java TvJava Tv

KONFİGÜRASYON VE PROFİLLERKONFİGÜRASYON VE PROFİLLER

CLDC (Connected Limited Device Configuration) CLDC (Connected Limited Device Configuration) CDC (Connected Device Configuration) CDC (Connected Device Configuration)

CLCD KonfigirasyonuCLCD Konfigirasyonu

KVM 512 KB tan ufak hafızası ve sınırlı ağ KVM 512 KB tan ufak hafızası ve sınırlı ağ

bağlantısı olan cihazlar için tasarlanmıştır bağlantısı olan cihazlar için tasarlanmıştır

java.io java.io java.lang java.lang java.lang.ref java.lang.ref java.util java.util javax.microedition.io javax.microedition.io

CDC Konfigürasyonu CDC Konfigürasyonu CVM (Compact Virtual Machine) CVM (Compact Virtual Machine) CLDC den daha fazla hafıza ve işlemci gücüne sahipCLDC den daha fazla hafıza ve işlemci gücüne sahip

cihazlarda kullanılırcihazlarda kullanılır

java.io java.io java.lang java.lang java.lang.ref java.lang.ref java.lang.reflect java.lang.reflect java.mathjava.math java.net java.net java.security java.security java.security.cert java.security.cert java.textjava.text java.util java.util java.util.jarjava.util.jar java.util.zip java.util.zip javax.microedition.io javax.microedition.io

(MIDP)(MIDP)Mobile Information Device Profile Mobile Information Device Profile

MIDP 1.0 MIDP 1.0 MIDP 2.0 MIDP 2.0

MIDP 1.0MIDP 1.0 java.io java.io java.langjava.lang java.util java.util javax.microedition.io javax.microedition.io javax.microedition.lcdui javax.microedition.lcdui javax.microedition.midlet javax.microedition.midlet javax.microedition.rms javax.microedition.rms

MIDP 2.0MIDP 2.0 java.io java.io java.lang java.lang java.util java.util javax.microedition.io javax.microedition.io javax.microedition.lcdui.game javax.microedition.lcdui.game javax.microedition.media javax.microedition.media javax.microedition.media.control javax.microedition.media.control javax.microedition.midletjavax.microedition.midlet javax.microedition.pki javax.microedition.pki javax.microedition.rms javax.microedition.rms

J2ME ve IDE ler J2ME ve IDE ler

http://java.sun.com/j2me/http://java.sun.com/j2me/

http://www.netbeans.orghttp://www.netbeans.org

http://wwws.sun.com/software/sundev/previous/studhttp://wwws.sun.com/software/sundev/previous/studio4u1/buy/io4u1/buy/

http://www.eclipse.org/http://www.eclipse.org/

http://http://eclipseme.sourceforge.neteclipseme.sourceforge.net//

J2WTK KurulumuJ2WTK Kurulumu

http://java.sun.com/products/j2mewtoolkit/download-2_2.htmlhttp://java.sun.com/products/j2mewtoolkit/download-2_2.html

Midlet YapısıMidlet Yapısı

public void startApp(){public void startApp(){

} }

protected void pauseApp(){protected void pauseApp(){

} }

protected void destroyApp(boolean boolean0){protected void destroyApp(boolean boolean0){

} }

Örnek MidletÖrnek Midlet

import javax.microedition.midlet.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.*; public class OrnekMidlet extends MIDlet{ public class OrnekMidlet extends MIDlet{

protected void startApp(){} protected void startApp(){} protected void pauseApp(){} protected void pauseApp(){} protected void destroyApp(boolean boolean0){} protected void destroyApp(boolean boolean0){}

} }

Örnek MidletÖrnek Midletimport javax.microedition.midlet.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.*; public class MerhabaDunya extends MIDlet{ public class MerhabaDunya extends MIDlet{

protected void startApp(){ protected void startApp(){ TextBox box=new TextBox("Merhaba","MerhabaDünya",100,TextField.ANY); TextBox box=new TextBox("Merhaba","MerhabaDünya",100,TextField.ANY); Display.getDisplay(this).setCurrent(box); Display.getDisplay(this).setCurrent(box); }} protected void pauseApp(){} protected void pauseApp(){} protected void destroyApp(boolean boolean0){} protected void destroyApp(boolean boolean0){}

} }

LCDUILCDUI

Limited Connected User InterfaceLimited Connected User Interface

Display.getDisplay(this) Display.getDisplay(this)

LCDUILCDUI

Limited Connected User InterfaceLimited Connected User Interface

Display.getDisplay(this).setCurrent(nesne) Display.getDisplay(this).setCurrent(nesne)

LCDUILCDUI

Limited Connected User InterfaceLimited Connected User Interface TextBox box=new TextBox("hello","Hello MIDlet",100,TextField.ANY);TextBox box=new TextBox("hello","Hello MIDlet",100,TextField.ANY);

Display.getDisplay(this).setCurrent(box); Display.getDisplay(this).setCurrent(box);

Form NesneleriForm Nesneleri

Form form= new Form("Giris");Form form= new Form("Giris");TextField user= new TextField("Username:","",20,TextField.ANY);TextField user= new TextField("Username:","",20,TextField.ANY);TextField pass= new TextField("Password:","",20,TextField.PASSWORD);TextField pass= new TextField("Password:","",20,TextField.PASSWORD);ChoiceGroup cinsiyet=new ChoiceGroup("Cinsiyet", ChoiceGroup.EXCLUSIVE);ChoiceGroup cinsiyet=new ChoiceGroup("Cinsiyet", ChoiceGroup.EXCLUSIVE);cinsiyet.append("Bay",null);cinsiyet.append("Bay",null);cinsiyet.append("Bayan",null);cinsiyet.append("Bayan",null);DateField tarih=new DateField("Dogum Tarihi",DateField.DATE);DateField tarih=new DateField("Dogum Tarihi",DateField.DATE);

form.append(tarih);form.append(tarih);form.append(cinsiyet);form.append(cinsiyet);form.append(user);form.append(user);form.append(pass);form.append(pass);display.setCurrent(form);display.setCurrent(form);

Command Command import javax.microedition.midlet.*;import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;import javax.microedition.lcdui.*;

public class formUygulamasi extends MIDlet implements CommandListener{public class formUygulamasi extends MIDlet implements CommandListener{

Form form;Form form;

Command cikis;Command cikis;

Command kaydet;Command kaydet;

public void startApp() {public void startApp() {

form= new Form("Kayit Formu");form= new Form("Kayit Formu");

TextField ad= new TextField("Adiniz:","",20,TextField.ANY);TextField ad= new TextField("Adiniz:","",20,TextField.ANY);

cikis= new Command ("Cikis",Command.EXIT,2);cikis= new Command ("Cikis",Command.EXIT,2);

kaydet= new Command("Kaydet",Command.OK,1);kaydet= new Command("Kaydet",Command.OK,1);

form.addCommand(cikis);form.addCommand(cikis);

form.addCommand(kaydet);form.addCommand(kaydet);

form.append(ad);form.append(ad);

Display.getDisplay(this).setCurrent(form);Display.getDisplay(this).setCurrent(form);

}}

public void pauseApp() {public void pauseApp() {

}}

public void destroyApp(boolean unconditional) {public void destroyApp(boolean unconditional) {

}}

public void commandAction(Command c, Displayable s) {public void commandAction(Command c, Displayable s) {

if (c == kaydet) {if (c == kaydet) {

//islemler//islemler

}}

}}

}}

AlertAlert

Alert uyari = new Alert("Uyari", "Bos Alan Birakmayiniz", null, null);Alert uyari = new Alert("Uyari", "Bos Alan Birakmayiniz", null, null);

uyari.setTimeout(Alert.FOREVER);uyari.setTimeout(Alert.FOREVER);

Display.getDisplay(this).setCurrent(uyari); Display.getDisplay(this).setCurrent(uyari);

RMS (Record Management System)RMS (Record Management System) ////YaziyoruzYaziyoruz

RecordStore rs=RecordStore.openRecordStore("telefon", true);RecordStore rs=RecordStore.openRecordStore("telefon", true);

String[] liste={"Melih","Altug","Murat","Burak","Ozan","Mustafa"};String[] liste={"Melih","Altug","Murat","Burak","Ozan","Mustafa"};

byte[] record;byte[] record;

for (int i=0;i<liste.length;i++){for (int i=0;i<liste.length;i++){

record=liste[i].getBytes();record=liste[i].getBytes();

rs.addRecord(record,0, record.length);rs.addRecord(record,0, record.length);

}}

RMS (Record Management System)RMS (Record Management System)

//okuyoruz//okuyoruz

byte[] recData= new byte[100];byte[] recData= new byte[100];

int dataLen;int dataLen;

for(int i=1;i<rs.getNumRecords();i++){for(int i=1;i<rs.getNumRecords();i++){

rs.getRecord(i,recData,0);rs.getRecord(i,recData,0);

dataLen = rs.getRecord(i,recData,0);dataLen = rs.getRecord(i,recData,0);

String str=new String(recData,0,dataLen);String str=new String(recData,0,dataLen);

try{try{

System.out.println("icerik "+i+":"+str); System.out.println("icerik "+i+":"+str);

}}

catch(Exception e){catch(Exception e){

System.out.println(e.toString());System.out.println(e.toString());

}}

RMS (Record Management System)RMS (Record Management System)

//kapatiyoruz//kapatiyoruz

rs.closeRecordStore();rs.closeRecordStore();

RMS (Record Management System)RMS (Record Management System)

try{try{

RecordStore.deleteRecordStore("telefon");RecordStore.deleteRecordStore("telefon");

}}

catch(Exception e){catch(Exception e){

}}

Sunucuya BaglanmaSunucuya Baglanma

Socket BaglantısıSocket Baglantısı Http BaglantisiHttp Baglantisi

InputConnectionInputConnection OutputConnectionOutputConnection DatagramConnectionDatagramConnection StreamConnectionStreamConnection HttpConnectionHttpConnection

HttpConnectionHttpConnection

HttpConnection baglanti= (HttpConnection)Connector.open("http://localhost:8080/test/index.jsp");HttpConnection baglanti= (HttpConnection)Connector.open("http://localhost:8080/test/index.jsp");

InputStream is=baglanti.openInputStream();InputStream is=baglanti.openInputStream();

int ch;int ch;

StringBuffer haber= new StringBuffer();StringBuffer haber= new StringBuffer();

while((ch=is.read())!=-1){while((ch=is.read())!=-1){

haber.append( (char)ch ); haber.append( (char)ch );

}}

is.close();is.close();

baglanti.close();baglanti.close();

CanvasCanvasimport javax.microedition.midlet.*;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.microedition.lcdui.*;public class CanvasTest extends MIDlet{public class CanvasTest extends MIDlet{ public void startApp(){public void startApp(){ TestCanvas canvas=new TestCanvas();TestCanvas canvas=new TestCanvas(); Display.getDisplay(this).setCurrent(canvas);Display.getDisplay(this).setCurrent(canvas); }} public void pauseApp(){}public void pauseApp(){} public void destroyApp(boolean unconditional){}public void destroyApp(boolean unconditional){} public class TestCanvas extends Canvas{public class TestCanvas extends Canvas{ public void paint(Graphics g){public void paint(Graphics g){ g.setColor(255,255,255);g.setColor(255,255,255); g.fillRect(0,0,getWidth(),getHeight());g.fillRect(0,0,getWidth(),getHeight()); g.setColor(0,0,0);g.setColor(0,0,0); g.drawRect(10,10,50,50);g.drawRect(10,10,50,50); }} }}}}

Media ApiMedia Api

InputStream is =getClass().getResourceAsStram(“/audio.wav”);InputStream is =getClass().getResourceAsStram(“/audio.wav”);

Player player= Manager.createPlayer(is, “audio/X-wav”);Player player= Manager.createPlayer(is, “audio/X-wav”);

player.start();player.start();

Game ApiGame Api

javax.microedition.lcdui.game javax.microedition.lcdui.game GameCanvasGameCanvas : Canvas class'ından extend olan bir oyun canvası. : Canvas class'ından extend olan bir oyun canvası. LayerLayer: Bir orjini birde genişlik ve yüksekliği olan dikdörtgensel bir bölge : Bir orjini birde genişlik ve yüksekliği olan dikdörtgensel bir bölge

tanımlamak için kullanılan bir class. tanımlamak için kullanılan bir class. LayerManagerLayerManager: Birden fazla Layer nesnelerini yönetmek için kullanılan bir : Birden fazla Layer nesnelerini yönetmek için kullanılan bir

class class SpriteSprite: Bir image'ı olan oyun nesneleri için kullanılan class. Animasyon, : Bir image'ı olan oyun nesneleri için kullanılan class. Animasyon,

Döndürme gibi özellikleri bulunmakta . Döndürme gibi özellikleri bulunmakta . TiledLayerTiledLayer: Birden fazla hücresi olan bir layer nesnesi. Bu hücrelere image : Birden fazla hücresi olan bir layer nesnesi. Bu hücrelere image

koyulabiliyor. Bu şeklilde aynı image'lardan bir çok TiledLayer nesnesi koyulabiliyor. Bu şeklilde aynı image'lardan bir çok TiledLayer nesnesi yaratılabiliyor. yaratılabiliyor.

Game ApiGame Apiif((getKeyStates()&LEFT_PRESSED)!=0){ if((getKeyStates()&LEFT_PRESSED)!=0){

x--; x--; }}else if((getKeyStates()&RIGHT_PRESSED)!=0)else if((getKeyStates()&RIGHT_PRESSED)!=0){ {

x++; x++; }else if((getKeyStates()&UP_PRESSED)!=0){ }else if((getKeyStates()&UP_PRESSED)!=0){

y--; y--; }else if((getKeyStates()&DOWN_PRESSED)!=0){ }else if((getKeyStates()&DOWN_PRESSED)!=0){

y++; y++; } } Graphics g=getGraphics(); Graphics g=getGraphics(); clear(g); clear(g); g.drawImage(image,x,y,Graphics.LEFT|Graphics.TOP); g.drawImage(image,x,y,Graphics.LEFT|Graphics.TOP); flushGraphics(); flushGraphics();

JAD DosyasıJAD Dosyası

MIDlet-1: HelloMIDlet, , hello.HelloMIDletMIDlet-1: HelloMIDlet, , hello.HelloMIDletMIDlet-2: Seminer, , hello.SeminerMIDlet-2: Seminer, , hello.SeminerMIDlet-Jar-Size: 4484MIDlet-Jar-Size: 4484MIDlet-Jar-URL: Melih.jarMIDlet-Jar-URL: Melih.jarMIDlet-Name: MelihMIDlet-Name: MelihMIDlet-Vendor: VendorMIDlet-Vendor: VendorMIDlet-Version: 1.0MIDlet-Version: 1.0MicroEdition-Configuration: CLDC-1.0MicroEdition-Configuration: CLDC-1.0MicroEdition-Profile: MIDP-1.0MicroEdition-Profile: MIDP-1.0

Örnek Wap SayfasıÖrnek Wap Sayfası

<?xml version="1.0" encoding="iso-8859-1"> <?xml version="1.0" encoding="iso-8859-1"> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML

1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd">1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd"><wml> <wml>

<card title="main"> <card title="main"> <a href="Test.jad"><a href="Test.jad">

Midlet Download EtMidlet Download Et</a> </a>

</card> </card> </wml> </wml>

Mimetype TanımlarıMimetype Tanımları

.jar application/java-archive .jar application/java-archive

.jad text/vnd.sun.j2me.app-descriptor .jad text/vnd.sun.j2me.app-descriptor

SORULAR ???SORULAR ???

top related