Udah lama saya engga posting, iya kali
ini mungkin tutorialnya loncat ke J2ME yaitu mengenai bagaimana membuat list
menu yang bias di scroll atas bawah (vertical) di canvas J2ME.
Seperti gambar di bawah :
Seperti gambar di bawah :
Source Code :
MidletCanvasScrollList.java
MessageMenuLogic.java
CanvasScrollList.rar
Terima Kasih
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
/**
* @author Muhamad Alief
*/
public class MidletCanvasScrollList extends MIDlet {
public Display display;
ListMenu listMenu;
public MidletCanvasScrollList(){
listMenu = new ListMenu(this);
display = Display.getDisplay(this);
}
public void startApp() {
if(display == null){
display = Display.getDisplay(this);
}
display.setCurrent(listMenu);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void keluar(){
destroyApp(true);
notifyDestroyed();
}
}
ListMenu.java
import java.io.IOException;
import javax.microedition.lcdui.*;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Muhamad Alief
*/
public class ListMenu extends Canvas{
MidletCanvasScrollList midletScrollList;
Image img;
private MessageMenuLogic mml = new MessageMenuLogic();
private int anchor = Graphics.TOP | Graphics.LEFT;
private String[] mString = {"Indonesia Raya", "Garuda Pancasila", "Satu Nusa Satu Bangsa", "Bangun Pemudi Pemuda",
"Halo - Halo Bandung", "Hari Merdeka", "Berkibarlah Benderaku",
"Bagimu Negri", "Indonesia Pusaka","Pantang Mundur","Syukur",};
private int y;
private final int SCRL_BAR_X = 228;
public ListMenu(MidletCanvasScrollList midlet){
midletScrollList = midlet;
this.setFullScreenMode(true);
}
protected void paint(Graphics g) {
try {
img = Image.createImage("/3Tampilan Playlist Lagu.png");
g.drawImage(img, getWidth()/2, getHeight()/2, Graphics.HCENTER|Graphics.VCENTER);
Font f = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);
g.setFont(f);
g.setColor(0xffffff);
String drwStr = "Playlist";
int strW = f.stringWidth(drwStr);
int strH = f.getHeight();
g.drawString(drwStr,(getWidth()-strW)/2, 22-strH, anchor);
g.drawString("Keluar",getWidth()-4,getHeight()-2,Graphics.BOTTOM|Graphics.RIGHT);
g.drawString("Mainkan",4,getHeight()-2,Graphics.BOTTOM|Graphics.LEFT);
//Garis Underline
g.setStrokeStyle(Graphics.SOLID);
g.drawLine(0, 29, getWidth(), 29);
g.drawLine(0, 30, getWidth(), 30);
//Scroll bar
g.fillRect(SCRL_BAR_X, 50, 8, 220);
g.setColor(0xb50202);
g.fillRect(SCRL_BAR_X, mml.getScrlBar(), 8, 120);
g.setColor(0xffffff);
y = 50;
for (int i = mml.getStartArr(); i < mml.getEndArr(); i++) {
if (mml.getCurrentSel() == i) {
//Cursor yang berpindah pindah
g.setColor(0x504e4e);
g.fillRoundRect(3, (y - 2), 220, 30, 10, 10);
}
g.setColor(0xffffff);
g.drawString(mString[i], 10, y+5, anchor);
y += 32;
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
protected void keyPressed(int keyCode) {
String str = getKeyName(keyCode);
if(keyCode == -7){
midletScrollList.keluar();
}
if(str.equals("Up") || str.equals("UP")) {
mml.boundaryParam(-1);
repaint();
}
if(str.equals("Down") || str.equals("DOWN")) {
mml.boundaryParam(1);
repaint();
}
}
}
/**
*
* @author Muhamad Alief
*/
public class MessageMenuLogic {
private int startArr = 0;
private int endArr = 7;
private int currentSel = 0;
private int scrlBar = 50; //Merubah ukuran scroll berwarna merah
public void setStartArr(int i)
{
startArr = i;
}
public int getStartArr()
{
return startArr;
}
public void setEndArr(int i)
{
endArr = i;
}
public int getEndArr()
{
return endArr;
}
public void setCurrentSel(int i)
{
currentSel = i;
}
public int getCurrentSel()
{
return currentSel;
}
private void setScrlBar(int i)
{
scrlBar = i;
}
public int getScrlBar()
{
return scrlBar;
}
public void boundaryParam(int i)
{
switch(i)
{
case 1:
pindahBawah();
break;
case -1:
pindahAtas();
break;
default:
break;
}
}
private void pindahAtas()
{
if(getCurrentSel()-1 == getStartArr() && getStartArr() > 0)
{
setStartArr(getStartArr()-1);
setEndArr(getStartArr()+7); //Pertama kali tampil 7 list
setCurrentSel(getCurrentSel()-1);
setScrlBar(getScrlBar()-25); //Ketika scroll merah berada di list paling atas waktu di tekan tombol atas
}
else if(getCurrentSel() == getStartArr() && getStartArr() == 0)
{
setStartArr(4); //Sisa list jadi 4,Sebab total = 11 - 7 = 4
setEndArr(getStartArr()+7);
setCurrentSel(getEndArr()-1);
setScrlBar(150); //Ketika scroll merah berada di list paling bawah waktu di tekan tombol atas
}
else
{
setCurrentSel(getCurrentSel()-1);
}
}
private void pindahBawah()
{
if(getCurrentSel()+2 == getEndArr() && getEndArr() < 11) //Untuk menambahkan/mengurangi list
{
setStartArr(getStartArr()+1);
setEndArr(getStartArr()+7);
setCurrentSel(getCurrentSel()+1);
setScrlBar(getScrlBar()+25); //Ketika scroll merah berada di list paling atas waktu di tekan tombol bawah
}
else if(getCurrentSel()+1 == getEndArr() && getEndArr()== 11)
{
setStartArr(0);
setEndArr(getStartArr()+7);
setCurrentSel(getStartArr());
setScrlBar(50); //Ketika scroll merah berada di list paling bawah waktu di tekan tombol bawah
}
else
{
setCurrentSel(getCurrentSel()+1);
}
}
}
Atau bisa di DownloadCanvasScrollList.rar
Terima Kasih
Semoga Bermanfaat
Wa'alaikumsalam Wr.Wb.

No comments:
Post a Comment