combobox отображает одно значение [дубликат]

Наиболее простой вариант заключается в использовании процедуры округления:

import numpy as np
x=[9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006]

print('standard:')
print(x)
print("\nhuman readable:")
print(np.around(x,decimals=2))

Это приводит к выходу:

standard:
[9.0, 0.053, 0.0325754, 0.0108928, 0.0557025, 0.0793303]

human readable:
[ 9.    0.05  0.03  0.01  0.06  0.08]
5
задан sandboxj 18 December 2016 в 00:40
поделиться

2 ответа

Вы можете использовать пользовательский cellFactory, чтобы отображать элементы таким образом, который подходит вашим потребностям:

ComboBox<Dummy> comboBox = ...

Callback<ListView<Dummy>, ListCell<Dummy>> factory = lv -> new ListCell<Dummy>() {

    @Override
    protected void updateItem(Dummy item, boolean empty) {
        super.updateItem(item, empty);
        setText(empty ? "" : item.getName());
    }

};

comboBox.setCellFactory(factory);
comboBox.setButtonCell(factory.call(null));
5
ответ дан fabian 16 August 2018 в 02:19
поделиться

Я предполагаю, что ComboBox вы имеете в виду: http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ComboBoxBase.html . Поскольку getValue() - public, вы можете сделать:

public class MyComboBox<T> extends ComboBox<T> {
  private final Dummy dummy;
  public MyComboBox(Dummy dummy) {
    this.dummy = dummy;
  }
  public T getValue() {
    return dummy.getName();
  }
}
-1
ответ дан Roberto Attias 16 August 2018 в 02:19
поделиться
  • 1
    Спасибо. Хотя я не верю, что вы прямо ответили на мой вопрос о том, как отображать свойство в ComboBox, а не о самом объекте, создание специального класса ComboBox - хорошее предложение! – sandboxj 17 December 2016 в 23:50
  • 2
    Зачем вам это делать? Это заменит тип объекта, возвращаемого с getValue на String, что во многих случаях приведет к ClassCastException. Кроме того, вы возвращаете имя того же Dummy, независимо от значений, выбранных в ComboBox. И последнее, но не менее важное getValue() - final и, следовательно, нельзя переоценить. – fabian 18 December 2016 в 13:07
Другие вопросы по тегам:

Похожие вопросы: