Этот вопрос действительно является дубликатом: Javafx PropertyValueFactory не заполняет Tableview , но я конкретно рассмотрю ваш конкретный случай, так что это понятно.
Фон
Свойство PropertyValueFactory использует отражение для определения методов получения и установки значений данных, а также для получения связующих свойств из вашего класса модели. Образец следующий:
PropertyValueType getName()
void setName(PropertyValueType value)
PropertyType nameProperty()
Где «имя» - это строка, указанная в конструкторе PropertyValueFactory.
Почему ваше приложение не работает
У вас есть эти три выражения:
new PropertyValueFactory("DateEntered")
new PropertyValueFactory("cDesc")
new PropertyValueFactory("CreatedBy")
Для свойств вашего образца PropertyValueFactory будет искать эти методы:
"DateEntered" => getDateEntered()
"cDesc" => getCDesc()
"CreatedBy" => getCreatedBy()
И у вас есть эти три геттера на вашем sresult
class:
getDateEntered()
getcDesc()
getEnteredBy()
Только свойство getDateEntered()
будет собрано PropertyValueFactory, потому что это единственный метод сопоставления, определенный в классе sresult
.
Совет
Вам нужно будет принять стандарты Java, если вы хотите, чтобы отражение в PropertyValueFactory работало (альтернатива - не использовать PropertyValueFactory и вместо этого писать ваши собственные клеточные фабрики с нуля).
Принятие Соглашения о присвоении имен Java верблюдов также упрощает чтение Java-кода вашим разработчикам Java.
Вы можете использовать
$search_field_pattern = "/\bdata\[SearchForm]\[(\w+)]/i";
if(preg_match($search_field_pattern, "data[SearchForm][somestringhere]", $m)) {
echo $m[1]; // => somestringhere
}
См. PHP demo
Шаблон соответствует
\b
- граница слова data\[SearchForm]\[
- буквальная строка data[SearchForm][
(примечание [
экранировано, чтобы соответствовать символам [
) (\w+)
- группа захвата 1 : один или несколько символов слова ]
- символ ]
. Третий аргумент preg_match
, $m
будет содержать результаты , Поскольку необходимая подстрока захватывается в группу 1, значение извлекается с помощью $m[1]
.
Чтобы получить последнюю подстроку внутри квадратных скобок, вы можете использовать
if(preg_match("~\[(\w+)](?!.*\[\w+])~s", "data[SearchForm][somestringhere]", $m)) {
echo $m[1]; // => somestringhere
}
См. this PHP demo .
Чтобы получить второй, используйте
if(preg_match("~\[\w+].*?\[(\w+)]~s", "data[SearchForm][somestringhere]", $m)) {
echo $m[1]; // => somestringhere
}
[...]
? Ответ соответствует вашему текущему вопросу, пожалуйста, отредактируйте его, если вы имели в виду что-то еще. – Wiktor Stribiżew 13 July 2018 в 12:02