2015-12-09 3 views
0

Я хочу напечатать BigDecimal в TableColumn в моем приложении JavaFx. Но я не могу его правильно отформатировать.Форматирование Bigdecimal. JavaFX

Я попытался это:

DecimalFormat df = new DecimalFormat("#,###.00"); 
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleStringProperty(df.format(cellData.getValue().getSellAmount()).toString())); 

Формат одобрено, он печатает 1 005 689.56. Но проблема здесь в том, что когда я сортирую таблицу в соответствии с этим столбцом в своем приложении, это относится к этим значениям, как если бы они были строками, а сортировка неверна.

Я сделал следующие изменения:

tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleObjectProperty<BigDecimal>(cellData.getValue().getSellAmount())); 

Здесь, формат не в порядке. (1005689.5600), но сортировка работает правильно. Что мне нужно изменить, чтобы иметь правильный формат («#, ###. 00») и сортировка?

+0

в источнике BigDecimal ... общественности Строка ToString() { Строка СБН = stringCache; \t if (sc == null) \t stringCache = sc = layoutChars (true); \t return sc; } – Adam111p

ответ

3

Я сделал это сам.

tc_ma_sell_amount.setCellFactory(param -> { 
      return new TableCell<ConversionDeals, BigDecimal>(){ 
       @Override 
       protected void updateItem(BigDecimal item, boolean empty) { 
        super.updateItem(item, empty); 
        if(empty || item == null){ 
         setText(""); 
        } else { 
         setText(df.format(item)); 
        } 
       } 
      }; 
     }); 

 Смежные вопросы

  • Нет связанных вопросов^_^