Canvas利用の場合は?
続いて、Canvasクラスを利用した場合についても見てみましょう。これは、Canvas利用のクラスをStar用に修正したものだけ掲載しておきます。
class MainCanvas extends Canvas {
public void paint(Graphics g) {
g.setColor(Graphics.getColorOfRGB(255, 0, 0));
g.fillArc(50, 50, 100, 100, 0, 360);
g.setFont(Font.getFont(Font.FACE_SYSTEM,24));
g.drawString("This is Canvas", 10, 170);
for(int i = 0;i < 10;i++)
for(int j = 0;j < 10;j++){
g.setColor(Graphics.getColorOfRGB(0, 255 - 25 * i, 25 * j, 150));
g.fillRect(i * 20, j * 20, 20, 20);
}
}
}
StarのエミュレータでMainCanvasを表示する。 |
Canavsクラスも、ほとんど大きな変更はありません。違っているのは唯一、Font.getFontメソッドだけです。getFontは、DoJaではFontクラスのクラスフィールドを指定してフォントサイズを指定していましたが、Starでは引数にフォントの属性を示す値と、フォントサイズを示すint値を渡すようになりました。デフォルトのフォントサイズは24になっています。
Starは、新しい機能やオプション機能などではかなり変わっている部分がありますが、PanelとCanvasを使った画面表示の部分は、ほとんどDoJaと違いがありません。ですから、アプリケーション・クラスとパッケージ関係さえ修正すれば、他はほとんど修正らしい修正もせずにStar用にビルドできてしまいます。Star用開発ツールはDoJa用のものと併用できますから、とりあえずインストールしておきましょう。