BD-Jプログラミング / BD-J Programming@ wiki

スクロール可能なリスト(HListGroup)

スクロール可能なリスト用widgetであるHListGroupのサンプルコード。

Main.java
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
 
import org.havi.ui.HListElement;
import org.havi.ui.HListGroup;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
import org.havi.ui.HVisible;
import org.havi.ui.event.HFocusListener;
 
public class Main implements Xlet {
 
    public void initXlet(XletContext context){
        try {
            Font font = new Font(null, java.awt.Font.PLAIN, 48);
            HScene hs= HSceneFactory.getInstance().getFullScreenScene(
                    HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
            hs.setLayout(null);
            HListGroup hlg = new HListGroup(null, 100, 100, hs.getWidth()-200, hs.getHeight()-200);
            hlg.setFont(font);
 
            hlg.setBordersEnabled(true);
            hlg.setHorizontalAlignment(HVisible.HALIGN_LEFT);
            hlg.setVerticalAlignment(HVisible.VALIGN_TOP);
            hlg.setLabelSize(new Dimension(hs.getWidth()-200,50));
            for( int i = 0; i < 100; i++ ){
                hlg.addItem(new HListElement("テスト-"+Integer.toString(i)), i);
            }
            hs.add(hlg);
            hs.validate();
            hlg.addHFocusListener(new HFocusListener(){
                public void focusGained(FocusEvent arg0) {
                    HListGroup hlg = (HListGroup)arg0.getComponent();
                    // フォーカスがきたら、自動的に0番目のitemを選択させる
                    hlg.setSelectionMode(true);
                    hlg.dispatchEvent(new KeyEvent(hlg, KeyEvent.KEY_PRESSED, 0L, 0, KeyEvent.VK_ENTER, ' '));
                }
                public void focusLost(FocusEvent arg0) {}
            });
            hlg.addKeyListener( new KeyListener(){
                public void keyPressed(KeyEvent arg0) {}
                public void keyReleased(KeyEvent arg0) {
                    if( arg0.getKeyCode() == KeyEvent.VK_ENTER ){
                        HListGroup hlg = (HListGroup)arg0.getComponent();
                        int index = hlg.getCurrentIndex();
                        hlg.setItemSelected(index, !hlg.isItemSelected(index) ); // itemを選択状態にする
                    }
                }
                public void keyTyped(KeyEvent arg0) {}
            });
            hs.setVisible(true);
            hlg.requestFocus();
        } catch (Throwable thr){
        }
    }
    public void startXlet(){    }//
    public void pauseXlet(){    }
    public void destroyXlet(boolean unconditional){}
 
 
}

関連する項目

本ページの登録タグ一覧: HAVi サンプルプログラム 558

自由にコメントを記入できます。

名前:
AX


BD-Jに関する口コミ一覧




Update history

2012-02-27

2011-11-28

2011-01-25

2010-11-02

2010-10-09

2010-10-08

2010-07-31

2010-07-04

2010-05-09

2010-03-29

2010-03-09

2010-02-06

2009-12-30

2009-11-23

2009-10-31

2009-09-23

2009-09-12

2009-08-29

2009-08-23

2009-08-20

2009-08-19

2009-08-15

2009-08-13

2009-08-12

2009-08-09

2009-08-08

2009-08-04

2009-08-01

2009-07-28

2009-07-25

2009-07-23

2009-07-21

2009-07-18

2009-07-16

2009-07-14

2009-07-11

2009-07-08

2009-07-04

2009-07-02

2009-06-27