HScene上のComponent間の重なり順を変更するサンプルコード。
HSceneおよびHContainerは、Componentをaddする際の重なり順を設定したり、addした後にそれらの重なり順を変更したりするメソッドを提供している。
本サンプルコードでは、メソッドpushToFront()を使用して、3個のComponentを順に最前面に表示させている。
本サンプルコードでは、メソッドpushToFront()を使用して、3個のComponentを順に最前面に表示させている。
Main.java
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main implements Xlet{
public void initXlet(XletContext xc){
try {
HScene hs= HSceneFactory.getInstance().getFullScreenScene(
HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
Sub sub1 = new Sub(Color.blue);
Sub sub2 = new Sub(Color.red);
Sub sub3 = new Sub(Color.green);
sub1.setLocation(0, 0);
sub2.setLocation(1920/8, 1080/8);
sub3.setLocation(1920/4, 1080/4);
hs.add(sub1);
hs.add(sub2);
hs.add(sub3);
hs.validate();
hs.setVisible(true);
for( int i=0;; i++ ){
Thread.sleep(1000);
if( (i%3) == 0)
hs.popToFront(sub1);
else if( (i%3) == 1)
hs.popToFront(sub2);
else
hs.popToFront(sub3);
hs.repaint();
}
} catch (Throwable thr){
}
}
class Sub extends Component {
Color c;
public Sub(Color c){this.c = c;this.setSize(1920/2, 1080/2);}
public void paint(Graphics g){
g.setColor(c);
g.fillRect(0, 0, getWidth(), getHeight());
}
}
public void startXlet(){}
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){ }
}