(RESOLVIDO)JavaFX Table Column

3 respostas
javafx
P

Tem alguma ideia como eu posso colocar a mascara de Dinheiro (R$ 1.00,00) e de Data(08/08/2017) nas Table Column do JavaFX, a mascara nos TextField consegui mais já as do Table Column não consegui =/

3 Respostas

J

Pode parecer complicado, mas e’ simples.

TableColumn lastPriceTradedCol = new TableColumn();
lastPriceTradedCol.setText("Price");   
lastPriceTradedCol.setCellValueFactory(new PropertyValueFactory("lastPrice"));
lastPriceTradedCol.setPrefWidth(110);

// neste meu exemplo eu uso uma classe chamada QuoteLine
// onde estao todos os valores das colunas para a linha em si, mas você podera’ fazer de foma mais
// simples e menos eficiente

lastPriceTradedCol.setCellFactory( column -> {            
            
            return new TableCell<QuoteLine, Double>() {
                
                DecimalFormat df = (DecimalFormat)NumberFormat.getNumberInstance(Locale.getDefault());                   
                {
                   df.applyPattern("R$ ###,###.##");
                                  
                   setAlignment(Pos.CENTER);
                }
                
                @Override
                public void updateItem(final Double quote, boolean empty) {                  
                super.updateItem(quote, empty);
                    
                if (quote != null) {  
                    
                  String n = df.format(quote);
                  setText( n );
                  return;
                     
                }
                setText("");
                setGraphic(null);
                
              }
            };                   
        });
P

não consegui entende o código nem implementá-lo…

P
protected void listarProdEntradaNf(){

ProdEntradaDAO prodEntradaDAO = new ProdEntradaDAO();

modelProdEntradas = prodEntradaDAO.ListarProdEntrada(tFNumNF.getText().trim());

mostrarProdEntrada(modelProdEntradas);

}

@FXML

protected void  mostrarProdEntrada(List modelProdEntradas){

if (modelProdEntradas.size() == 0){
}else{
        String [] campos = new String[] {null, null, null, null, null, null};
        for (int i = 0 ; i < modelProdEntradas.size(); i++){
            
    tColumnPCusto.setCellFactory( column -> { return new TableCell<QuoteLine, Double>() {
            
            DecimalFormat df = (DecimalFormat)NumberFormat.getNumberInstance(Locale.getDefault());                   
            {
               df.applyPattern("R$ ###,###.##");
                              
               setAlignment(Pos.CENTER);
            }
            
            @Override
            public void updateItem(final Double quote, boolean empty) {                  
            super.updateItem(quote, empty);
                
            if (quote != null) {  
                
              String n = df.format(quote);
              setText( n );
              return;
                 
            }
            setText("");
            setGraphic(null);
            
          }
        };                   
    });        
          
     // tColumnPTotal, tColumnNome, tColumnQnt, tColumnBarra
    tColumnNumNf.setCellValueFactory(new PropertyValueFactory<>("ID_NF_ENTRADA"));
    tColumnPTotal.setCellValueFactory(new PropertyValueFactory<>("PT_PROD_ENTRADA"));
    tColumnNome.setCellValueFactory(new PropertyValueFactory<>("DESC_PROD_ENTRADA"));
    tColumnQnt.setCellValueFactory(new PropertyValueFactory<>("QNT_PROD_ENTRADA"));
    tColumnPCusto.setCellValueFactory(new PropertyValueFactory<>("PC_PROD_ENTRADA"));
    tColumnBarra.setCellValueFactory(new PropertyValueFactory<>("CODBARRA")); 
    
    observableListProdutosEntrada = FXCollections.observableArrayList(modelProdEntradas);
    tableViewProdutoEntrada.setItems(observableListProdutosEntrada);
               
        }
    
    }
}

Meu codigo é esse para preencher a Column

Criado 9 de agosto de 2017
Ultima resposta 10 de ago. de 2017
Respostas 3
Participantes 2