Столбцы TableView не обновляются с наблюдаемым списком должным образом [дублировать]

GC_FOR_MALLOC означает, что GC был вызван, потому что в куче осталось недостаточно памяти для выполнения выделения. Может возникнуть срабатывание при создании новых объектов.

GC_EXPLICIT означает, что сборщик мусора явно попросил собрать вместо того, чтобы запускаться с помощью водяных знаков в куче.

Также есть несколько других:

GC_CONCURRENT Срабатывает, когда происходит сбой в потоке. куча достигла определенного количества объектов для сбора.

GC_EXTERNAL_ALLOC означает, что виртуальная машина пытается уменьшить объем памяти, используемой для собираемых объектов, чтобы освободить место для большего количества не собираемых.

Обновление: произошли изменения первого события в более поздних версиях Android. Теперь это называется GC_FOR_ALLOC. Существует также новое событие, хотя оно очень редко встречается в современных телефонах: GC_BEFORE_OOM означает, что система работает на самом низком уровне в памяти, и что выполняется финальный GC, чтобы избежать вызова убийцы с низкой памятью.

10
задан Keith_Indy 24 September 2013 в 13:48
поделиться

2 ответа

Этот вопрос действительно является дубликатом: Javafx PropertyValueFactory не заполняет Tableview , но я конкретно рассмотрю ваш конкретный случай, так что это понятно.

Фон

Свойство PropertyValueFactory использует отражение для определения методов получения и установки значений данных, а также для получения связующих свойств из вашего класса модели. Образец следующий:

PropertyValueType getName()
void setName(PropertyValueType value)
PropertyType nameProperty()

Где «имя» - это строка, указанная в конструкторе PropertyValueFactory.

Почему ваше приложение не работает

У вас есть эти три выражения:

new PropertyValueFactory<sresult, String>("DateEntered")
new PropertyValueFactory<sresult, String>("cDesc")
new PropertyValueFactory<sresult, String>("CreatedBy")

Для свойств вашего образца PropertyValueFactory будет искать эти методы:

"DateEntered" => getDateEntered()
"cDesc" => getCDesc()
"CreatedBy" => getCreatedBy()

И у вас есть эти три геттера на вашем sresult class:

getDateEntered()
getcDesc()
getEnteredBy()

Только свойство getDateEntered() будет собрано PropertyValueFactory, потому что это единственный метод сопоставления, определенный в классе sresult.

Совет

Вам нужно будет принять стандарты Java, если вы хотите, чтобы отражение в PropertyValueFactory работало (альтернатива - не использовать PropertyValueFactory и вместо этого писать ваши собственные клеточные фабрики с нуля).

Принятие Соглашения о присвоении имен Java верблюдов также упрощает чтение Java-кода вашим разработчикам Java.

30
ответ дан Community 17 August 2018 в 09:26
поделиться
  • 1
    @jewelsea вы можете объяснить, как создать мои клеточные фабрики? этот мой вопрос, и я боюсь здесь с недели stackoverflow.com/questions/43099841/… программа запускается без ошибок и не отображает данные в таблице! – Osama Al-Banna 30 March 2017 в 09:06

Для всех, кто еще не получил его после прохождения вышеизложенного, моя проблема заключалась в том, что я не указывал своим сеттерам «публичное окончательное» обозначение.

0
ответ дан Zachary Bennett 17 August 2018 в 09:26
поделиться
  • 1
    не совсем уверен в том, что вы имеете в виду, - но нет необходимости в "окончательном" модификатор .. – kleopatra 12 January 2018 в 13:43
Другие вопросы по тегам:

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