グラフィックスボタン

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){}
}

関連する項目

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください