Java — ChoiceBox заменяем значения


JavaFX и ChoiceBox

Не могу достать ChoiceBox с помощью lookup() по id,

При попытке достать значение из ChoiceBox выдает java.lang.NullPointerException .

18.02.2015, 09:33

JavaFX. Самое первое задание в JavaFX вместо Java. Не используя вспомогательных объектов
Всем привет, уважаемые форумчане! Мы работали на программировании в вузе на Java. Теперь дали.

Swing JavaFX, Переписать графический компонент в JavaFX
Всем привет! Только начал изучать Java. Пишу программу крестики-нолики(игра). Написал.

Как проверить, что выбрано в ChoiceBox?
нужна проверить какое значение ChoiceBox

Отобразить javafx.scene.image.Image в javafx.scene.layout.GridPane
Подскажите, пожалуйста, как отобразить javafx.scene.image.Image в javafx.scene.layout.GridPane.

JavaFX
Состоит ли JavaFX в стандартном пакете JRE?

18.02.2015, 09:33

MVC в JavaFX 2
Делаю почтовик. Применил шаблон MVC, но не знаю правильно или нет ( скорее всего нет :) ). Примеров.

JavaFX 8 book
Всем, доброго времени суток! Подскажите есть ли книги по JavaFX 8 на русском?


Сервер на JavaFX
Необходимо написать серверный 2д файтинг, что можно почитать, с чего начать?В особенности.

JavaFX: я не могу определить значение null при извлечении значения из ChoiceBox

У меня есть простая функция, которая должна пересекать все текстовые поля, поля выбора и флажки в области сетки. Основная проблема, с которой я столкнулся, заключается в том, что когда я извлекаю пустое значение из окна выбора, я получаю null, и я пытаюсь пропустить это значение с помощью выражения типа if (str! = Null & & ! str.isEmpty ()). Тем не менее, я все еще получаю null, который выводится на экран. Я пытаюсь понять, почему он все еще печатается на консоли. Я извлекаю значение из неправильной выборки? Или я делаю инструкции if неправильно?

Обновление: Я выставляю код контроллера, код fxml и код вывода. Я не хотел показывать весь код, потому что знаю, что это будет огромным для многих людей. По сути, я пытался создать простое приложение, которое может создать структуру таблиц SQL и вывести структуру таблицы в строку. В приложении есть две кнопки, одна из которых — создать другой столбец с текстовым полем для имени столбца, поле выбора для типа значения, которое оно есть, другое поле выбора, которое определяет, будет ли столбец индексом или значение первичного ключа и флажок, чтобы определить, будет ли столбец автоматически увеличиваться. Вторая кнопка — превратить значения в строку.

1 ответ

преобразуется в следующий результат в str

Это не str == null и не str. isEmpty. Вы получите правильный результат, если замените вышеприведенную строку на:

Конечно, вам придется заменить Result тем, что есть в вашем ChoiceBox , Если это также строка, вы также можете написать:

FXML как установить значение по умолчанию choicebox

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

Цукерберг рекомендует:  Access - СУБД Расписание MS ACCESS

Например , если вы хотите , чтобы выбрать второе значение в качестве значения по умолчанию вы можете сделать следующее в вашей FXML файл:


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

Опция ChoiceBox меняет расположение в JavaFX

Как настроить (продлить) макет в соответствии с выбранным вариантом ChoiceBox? Мое главное окно состоит из ChoiceBox (с несколькими вариантами) и кнопкой выхода. Когда пользователь расширяет список и выбирает один вариант, макет должен измениться таким образом, что ChoiceBox (с выбранным пунктом) сохраняется, но в зависимости от выбора нескольких форм и метки добавляются, чтобы создать своего рода форму заполнения. Моя идея заключается в следующем:

Где addItemLayouts это строковый массив , который состоит из путей к новым раскладок в соответствии с выбранным элементом. Каждый макет имеет свой контроллер , определенный такие же , как главный контроллер окна. Это хороший подход , или можно сделать это в лучшую сторону?

Java — ChoiceBox заменяем значения

268 просмотра

1 ответ

3 Репутация автора

Я хочу хранить объекты в ChoiceBox для зеркального отображения таблицы поиска с полями (id, name), чтобы можно было легко получить идентификатор при последующем сохранении записи, пока выбор отображает текст. Например, если у меня есть ChoiceBox с объектами Category, когда пользователь выбирает категорию в раскрывающемся списке, в тексте будет отображаться название этой категории — отображение и выбор будут совпадать. В конце концов, когда модель сохраняет данные, она извлекает поле id объекта Category в качестве параметра в запросе SQL.

Мой код внизу этого поста показывает мои попытки понять, что происходит.

Сложность заключается в том, что текстовая часть выбора не обязательно обновляется при изменении значения либо с помощью явного вызова setValue (), либо косвенного, когда я связываю выбор с ObjectProperty.


Я верю, что понимаю почему. Если я вызову setValue () с объектом Category, идентичным объекту в ObservableList выбора (тот же объект, а не другой экземпляр с такими же значениями поля), текстовая часть отображает правильное значение. Однако если я вызову setValue () с другим экземпляром, он не будет работать, даже если значения полей совпадают. Я сделал Override для equals () класса, который я использую, но это не помогло. Есть ли другой метод, который ChoiceBox использует для сравнения объектов?

Есть ли у вас какие-либо предложения, чтобы обойти эту проблему? Я хочу избежать кодирования других слушателей или функций поиска каждый раз, когда я реализую этот вариант использования.

Возможно, простым способом было бы использовать идентификатор из базы данных, чтобы получить один из объектов в списке выбора, который использовался для создания комбо, и установить его в качестве значения свойства моей модели. Например, если идентификатор равен 1, поле категории моей модели будет установлено на = picklist [1] (объект категории). Поскольку ObservableList выбора будет инициализирован с тем же списком выбора, объекты будут идентичны, и проблема будет решена. (Как в третьем сценарии в моем коде.)

Ответы (1)

плюса

149044 Репутация автора

Проблема в том, что вы не переопределили equals(. ) метод, имеющий сигнатуру

Определив его с другой подписью

вы перегружены его. (Рекомендуется всегда использовать @Override аннотацию, когда вы намереваетесь переопределить метод. Компилятор выдаст ошибку, если вы на самом деле не переопределите метод, поэтому вы можете сразу увидеть проблему.) Механизм, который проверяет, передано ли значение, которое вы передаете. to setValue(. ) находится в списке поддержки (возможно, с помощью вызова List.contains(. ) ), будет использовать equals(. ) метод, определенный в, Object если вы не переопределили его.

Цукерберг рекомендует:  Формирование текста с использованием функции PHP wordwrap()

Если вы на самом деле переопределите equals(. ) :

тогда это будет работать так, как вы хотите.


Обратите внимание, что вы должны всегда переопределять, hashCode() когда вы переопределяете equals(. ) :

Java — ChoiceBox заменяем значения

ChoiceBox может быть сконфигурирован любой, чтобы поддерживать null как допустимый выбор, или запретить это. В случае, что это запрещается, всегда будет некоторый элемент, который выбирается, пока есть по крайней мере один определенный элемент. По умолчанию никакой элемент не выбирается если иначе не определено. В случае это null является приемлемым, запись значения по умолчанию может быть вставлена в список вариантов наверху, с именем, подобным «Ни одному», и локализовала для различных Локалей.

Хотя ChoiceBox только позволит пользователю выбирать из предопределенного списка, для разработчика возможно определить выбранный пункт, чтобы быть чем-то другим чем, что доступно в предопределенном списке. Это требуется для нескольких важных вариантов использования.

Это означает, что конфигурация ChoiceBox является независимым порядком. Можно или определить элементы и затем выбранный пункт, или можно определить выбранный пункт и затем элементы. Так или иначе будет функционировать правильно.

Выбор элемента ChoiceBox обрабатывается SelectionModel Как с ListView и ComboBox, возможно изменить SelectionModel это используется, хотя это, вероятно, будет редко изменяться. ChoiceBox поддерживает только единственную модель выбора, следовательно используемое значение по умолчанию является a SingleSelectionModel .

Java — ChoiceBox заменяем значения

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

Подсчет суммы из JSON элементов

Есть код получение json обектов, нужно подсчитать сумму всех элементов из получаемого, но не пойму как прописать правильно цикл

Оптимизация галереи для сайта

Блочные элементы в 3 колонки


Есть набор блочный элементов с разной высотойКак можно разместить их в 3 колонки, чтоб направление блоков было сверху вниз и блоки равномерно.

ChoiceBox Overview

class is used to create a control which presents the user with a few choices to pick from a drop-down list. The user is only allowed to pick one of the options. When the drop-down list is not showing then the currently selected option is the only one visible. It is possible to set the object to accept a null option as a valid choice.

Import Statement

Constructors

class has two constructors one for an empty list of items and one with a given set of items:

Useful Methods

If you choose to create an empty

items can be added later using the method:

And, if you want to find out what items are in a

you can use the method:


To pick an option to be currently selected use the

method and provide it with one of the options:

To get the value of the option currently selected use the corresponding

method and assign it to a String:

Event Handling

In order to listen to events for a

object, the is used. The uses the class which only permits one option to be chosen at a time. The method allows us to add a . This means that whenever the option selected changes to another option the change event will occur. As you can see from the code below, a change is listened for and when it occurs the previously selected option and the newly selected option can be determined:

Цукерберг рекомендует:  Стили CSS3 для изображений

It’s also possible to show or hide the list of options without the user having to click on the

object by using the and methods. In the code below a Button object is used to call the show method of a object when the is clicked:

To find out about other JavaFX controls, have a look at JavaFX User Interface Controls.

JavaFX: Я не могу обнаружить нуль при извлечении значения из ChoiceBox


У меня есть простая функция, которая должна перебрать все текстовые поля, выбор окна и флажки в области сетки. Основная проблема , я столкнулся в том , что , когда я получить пустое значение из коробки выбора я получаю нулевой, и я пытаюсь пропустить это значение с помощью оператора , как если (ул! = NULL &&! Str.isEmpty () ) . Тем не менее , я все еще получаю нулевой выход которого на экран. Я пытаюсь выяснить , почему она до сих пор печатается на консоль. Могу ли я извлечение значения из choicebox неправильно ? Или я делать то , если заявления не так?

Обновление: Я гася код контроллера, код FXML и выходного кода. Я не хочу , чтобы показать весь код , потому что я знаю , что это было бы подавляющим для многих людей. По сути, я пытался создать простое приложение , которое может создать структуру SQL таблицы и вывод структуру таблицы в строку. Есть две кнопки приложения, один заключается в создании еще один столбец , который будет иметь текстовое поле для имени столбца, окно выбора для типа значения это еще один choicebox , который определяет , если столбец будет индекс или значение первичного ключа, а также флажок , чтобы определить , является ли столбец будет автоматически увеличиваться. Вторая кнопка для включения значения в строку.

CreateTable.fxml

CreateTableController.java

Выход

решает к следующему результату по ул

Это ни Обл == нуль ни str.isEmpty. Вы получите правильный результат при замене выше линий с:

Конечно , вам придется заменить Result с тем, что в вашей ChoiceBox. Если это также строка , которую вы могли бы также написать:

Не получается обновить данные в ChoiceBox

Другие JVM языки программирования /

JavaFX


20 фев 2020 12:47

Добавляю записи в ChoiceBox
.
mLocationRaionChoiceBox.setItems(observ);
.

После определенных манипуляций мне нужно загрузить новые записи
mLocationRaionChoiceBox.getItems().removeAll();
mLocationRaionChoiceBox.setItems(observ);
На этом выполнение программ подвисает не на что не реагирует. Приходится жёстко перегружать машину

Подскажите как правильно обновить items в ChoiceBox?

20 фев 2020 14:40

Очень долго ждал и получил вот такое сообщение

Exception in thread «JavaFX Application Thread» java.lang.OutOfMemoryError: GC overhead limit exceeded

20 фев 2020 14:47
20 фев 2020 14:54

Я уже и так делал перед повторным заполнением делаю вот это

mLocationRaionChoiceBox.getItems().clear();
//заполняю
for (String str_arr : raion_arr) <
mLocationRaionChoiceBox.getItems().add(str_arr);
>

Если mLocationRaionChoiceBox не выбирался то повторное заполнение проходит нормально но если я чтолибо выбрал из mLocationRaionChoiceBox то все при повторном заполнении программа зависает. ((((

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих