HGraphicButtonのサンプルコード。Normal/Focused/Actionedの3状態に応じてイメージを切り換えることが可能。
Main.java
import java.awt.FlowLayout;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.havi.ui.HGraphicButton;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main implements Xlet{
HGraphicButton hgb1, hgb2;
public void initXlet(XletContext context){
try {
HScene hs= HSceneFactory.getInstance().getFullScreenScene(
HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
// AWTの各種レイアウトをサポート
hs.setLayout(new FlowLayout());
// ボタンに貼るイメージを状態毎に用意
MediaTracker mt = new MediaTracker(hs);
Image normal = Toolkit.getDefaultToolkit().createImage("NormalButton.PNG");
Image focused = Toolkit.getDefaultToolkit().createImage("FocusedButton.PNG");
Image actioned = Toolkit.getDefaultToolkit().createImage("ActionedButton.PNG");
mt.addImage(normal, 0);
mt.addImage(focused, 0);
mt.addImage(actioned, 0);
mt.waitForAll();
// ボタンの生成
hgb1 = new HGraphicButton(normal, focused, actioned);
hgb2 = new HGraphicButton(normal, focused, actioned);
// 上下左右キーの移動先を指定
hgb1.setFocusTraversal(hgb2,hgb2,hgb2,hgb2);
hgb2.setFocusTraversal(hgb1,hgb1,hgb1,hgb1);
hs.add(hgb1);
hs.add(hgb2);
hs.setVisible(true);
hgb1.requestFocus();
} catch (Throwable thr){
}
}
public void startXlet(){ }
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){}
}
関連する項目
- Interactive TV Standards: HAViのウィジェットについて詳しい