研究テーマ->音楽ソフトの開発->携帯用アプリ開発->Softbank S!アプリ->サイコロを振る処理の作成  
  携帯電話用アプリケーションの開発について紹介します。  
プロジェクトの作成
Wireless Toolkitを起動します。
前の項目で作成した「DiceMusic」を読み込みます。これに、サイコロを振る機能を追加します。
ソースコードの追記
サイコロを2回ふると、出目の合計は、2〜12までの数値になります。これを、曲の前半8回、後半8回について行うので、結局、2〜12までの乱数を16回、発生させれば良いことになります。ボタンを押すと、乱数を発生し、その結果を画面に表示する処理をソースコードに追加します。
下記のようにMainCanvas.javaを書き換えます。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Random;

class MainCanvas extends Canvas implements CommandListener
{
    private Command diceCmd = new Command("サイコロ",Command.SCREEN,2);
    private Command quitCmd = new Command("終了",Command.SCREEN,1);
    private DiceMusic diceMusic;
    Random rnd = new Random();
    int dice[] = new int[8*2];
    boolean init_flg = false;

     public MainCanvas(DiceMusic diceMusic)
    {
        this.diceMusic = diceMusic;
        addCommand(quitCmd);
        addCommand(diceCmd);
        setCommandListener(this);

    }

   public void paint( Graphics g )
    {
      if(init_flg == false)
       {
            init_flg = true;
            return;
       }

       Font font = Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL);
       g.setFont(font);

       g.setColor(255,255,255);
       g.fillRect(0,0,getWidth(),getHeight());
       int i;

       g.setColor(0,0,0);
       for(i=0;i<8*2;i++)
       {
           g.drawString(Integer.toString(i+1)+"回目のサイコロ",0,i*13+30,Graphics.LEFT | Graphics.TOP);
           g.drawString(Integer.toString(dice[i]),100,i*13+30,Graphics.LEFT | Graphics.TOP);
       }

    }

    public void commandAction(Command c, Displayable d){
        if (c.getLabel() == "サイコロ") 
        {
            int i;
            for(i=0;i<8*2;i++)
            {
                 dice[i] = rnd.nextInt(11)+2;
            }
            repaint();
        }
        else if(c.getLabel() == "終了" )
        {
            diceMusic.exit();
        }
    }
 }
エミュレータを起動して読み込みます。下の図のようになります。