Main.java
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HSceneTemplate;
public class Main extends Container implements Xlet{
int w=480,h=270;
int x=0, y=0;
public void initXlet(XletContext xc){
try {
HSceneFactory hsf= HSceneFactory.getInstance();
// Scene取得用のテンプレートを取得
HSceneTemplate hst = new HSceneTemplate();
// 希望表示サイズを設定
hst.setPreference(HSceneTemplate.SCENE_PIXEL_DIMENSION,
new Dimension(w, h),
HSceneTemplate.REQUIRED);
// 希望表示位置を設定
hst.setPreference(HSceneTemplate.SCENE_PIXEL_LOCATION,
new Point(x, y),
HSceneTemplate.REQUIRED);
// 希望にもっとも合致するHSceneを取得
HScene hs = hsf.getBestScene(hst);
hs.setVisible(true);
Graphics g = hs.getGraphics();
g.setColor(Color.white);
for( ;; ){
g.drawRect(0, 0, w, h);
Thread.sleep(1000);
x+=40; y+=40;
// 希望表示位置を再設定
hst.setPreference(HSceneTemplate.SCENE_PIXEL_LOCATION,
new Point(x,y),
HSceneTemplate.REQUIRED);
// 再設定を実行
hsf.resizeScene(hs, hst);
}
} catch (Throwable thr){
}
}
public void startXlet(){}
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){ }
}
関連する項目
- Interactive TV Standards: A Guide to MHP, OCAP, and JavaTV: 第7章に詳しく記載
- HScene: HSceneの概要