
Quando criamos uma cena em Javafx, por vezes precisamos controlar grupos de componentes como um só, neste exemplo demonstro como adicionar dois grupos distintos em uma mesma cena, e fazendo com que uma fique invisivel enquanto a outra visivel. Neste exemplo são criados dois objetos Group que juntos compõe o content da Scene
import javafx.scene.Cursor;
import javafx.scene.effect.DropShadow;
import javafx.scene.Group;
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
/**
* @author athanazio
*/
Stage {
title: "Application title"
width: 250
height: 150
scene: Scene {
content: [
Group{
id: "me"
content: [
Rectangle {
cursor: Cursor.HAND
x: 5
y: 25
width: 50
height: 30
arcWidth: 20
arcHeight: 20
fill: Color.BLACK
stroke: Color.BLACK
effect: DropShadow{
offsetX: 5
offsetY: 5
color: Color.BLACK
}
}
Text {
font: Font {
size: 16
}
x: 10,
y: 40
content: "one"
fill: Color.WHITE
}]
onMouseClicked: function(e){
e.node.scene.lookup("myself").visible = true;
e.node.scene.lookup("me").visible = false;
}
}
Group{
visible: false
id: "myself"
content: [
Rectangle {
cursor: Cursor.HAND
x: 65
y: 25
width: 50
height: 30
arcWidth: 20
arcHeight: 20
fill: Color.BLACK
stroke: Color.BLACK
effect: DropShadow{
offsetX: 5
offsetY: 5
color: Color.BLACK
}
}
Text {
font: Font {
size: 16
}
x: 70,
y: 40
content: "two"
fill: Color.WHITE
}]
onMouseClicked: function(e){
e.node.scene.lookup("me").visible = true;
e.node.scene.lookup("myself").visible = false;
}
}
]
}
}
Note que a ideia eh de ter dois grupos, e neste exemplo dentro de cada um um retangulo e um texto, mas qualquer conjunto de Node poderia ser adicionado. veja no link abaixo a aplicação criada funcionando
groupgroup
