Boa tarde,
Estou a entrar no mundo do JavaFX e estou com uma pequena duvida.
Criei uma treeView mas não consigo saber qual o objecto selecionado.
E suponho que haja uma maneira melhor para popular a tree .
Alguém sabe como fazer?
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.ResourceBundle;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.input.MouseEvent;
public class SampleController implements Initializable {
@FXML
private TreeView<String> tree;
@Override
public void initialize(URL url, ResourceBundle rb) {
populateTree();
}
private void populateTree() {
List<TreeNode> treeNodes = Arrays.<TreeNode>asList(
new TreeNode(0, "", "Pai 1", "pai1.fxml"),
new TreeNode(1, "", "Pai 2", "pai2.fxml"),
new TreeNode(2, "", "Pai 3", "pai3.fxml"),
new TreeNode(0, "0", "Filho 1", "filho1.fxml"),
new TreeNode(1, "0", "Filho 2", "filho2.fxml"),
new TreeNode(0, "1", "Filho 1", "filho1.fxml"),
new TreeNode(0, "2", "Filho 1", "filho1.fxml"),
new TreeNode(0, "00", "Filho 3", "filho3.fxml")
);
TreeItem<String> treeRoot = new TreeItem<>("Root");
for(TreeNode treeArr : treeNodes){
TreeItem<String> treeNome = new TreeItem<>(treeArr.getNameNode());
if(!treeArr.getIdPai().isEmpty()){
if(treeArr.getIdPai().length() == 1){
treeRoot.getChildren().get(Integer.parseInt(treeArr.getIdPai())).getChildren().add(treeNome);
} else {
char[] digitos = treeArr.getIdPai().toCharArray();
treeRoot.getChildren().get(Integer.parseInt(digitos[0] + "")).getChildren().get(Integer.parseInt(digitos[1] + "")).getChildren().add(treeNome);
}
} else {
treeRoot.getChildren().add(treeNome);
}
}
tree.setRoot(treeRoot);
tree.setShowRoot(false);
tree.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
System.out.println(tree.getSelectionModel().getSelectedItem().getValue());
System.out.println(tree.getSelectionModel().getSelectedIndex());
}
});
}
}
Cumprimentos