Galera fiz uma tela que ela cria vários pane em tempo de execução nesses panes ficam descrição e valor dos produtos, preciso de uma forma de pegar esses panes e pintar ele de vermelho quando o usuário cancelar, não estou conseguido fazer isso, como posso fazer ?
Como você está criando os panes? Mostre o método.
Já tem o método de cancelar um produto? Mostre tbm.
Uso esse cara para criar um panel que vai os dados do produto
public Pane painelProduto(String sequencia, String codigo, String descricao, String quantidade
, String valorUnitario, String unidadeMedida, BigDecimal acreDesco, String valorTotal, VBox VboxProduto) {
String descOrAcrec = "";
if (acreDesco.compareTo(BigDecimal.ZERO) > 0){
descOrAcrec = "+";
} else {
descOrAcrec = "-";
}
pnlproduto = new Pane();
vbProduto = new VBox();
pnlproduto.prefWidthProperty().bind(VboxProduto.widthProperty().multiply(1));
vbProduto.prefWidthProperty().bind(pnlproduto.widthProperty().multiply(1));
if (Integer.parseInt(sequencia) % 2 == 0){
pnlproduto.setStyle("-fx-background-color:Silver");
} else {
pnlproduto.setStyle("-fx-background-color:White");
}
HBox h1 = criarHBox( this.id );
h1.prefWidthProperty().bind(vbProduto.widthProperty().multiply(1));
h1.getChildren().addAll(Label(sequencia,h1,0.5), Label(codigo,h1,0.5));
HBox h2 = criarHBox( this.id );
h2.prefWidthProperty().bind(vbProduto.widthProperty().multiply(1));
h2.getChildren().addAll(Label(descricao,h2,1));
HBox h3 = criarHBox( this.id );
h3.prefWidthProperty().bind(vbProduto.widthProperty().multiply(1));
h3.getChildren().addAll(Label(quantidade,h3,0.4), Label("R$ " + valorUnitario,h3,0.4), Label(unidadeMedida,h3,0.2));
HBox h4 = criarHBox( this.id );
h4.prefWidthProperty().bind(vbProduto.widthProperty().multiply(1));
h4.getChildren().addAll(Label( acreDesco.compareTo(BigDecimal.ZERO) == 0 ? "0.00" : descOrAcrec + acreDesco.toString(),h4,0.5),Label("R$ " + valorTotal + "\n",h4,0.5));
HBox quebraLinha = criarHBox(this.id);
quebraLinha.getChildren().add(Label("************--------************",quebraLinha,1));
vbProduto.getChildren().addAll(h1, h2,h3,h4,quebraLinha);
pnlproduto.getChildren().add(vbProduto);
return pnlproduto;
}
depois uso esse cara para adicionar o panel acima em um vbox
protected void AddProdutoScrolPane(){
PanelProduto produto = new PanelProduto(Long.toString(getVboxProduto().getChildren().stream().count() + 1));
getVboxProduto().getChildren().add(produto.painelProduto(Long.toString(getVboxProduto().getChildren().stream().count() + 1),getController().getTextCodigoProduto(),
getController().getTxtDescricaoProduto(),
getController().getQuantidadeInformada().toPlainString(),
getController().getTxtValorUnitario(), getController().getTxtUnidade().toString(),
getController().getDescontoAcrescimoItemParametro().getValor() ,
getController().getTxtTotalPagar(),
getVboxProduto()));
}
Ainda não tenho o método para cancelar, seria somente pintar os label de vermelho.
Ja tirando outra duvida, tem como eu definir para o vbox sempre mostrar o ultimo filho.