Почему JFormattedTextField является злым? [закрытый]

Что относительно Управление NoBot от Ajax ASP.net управляют инструментарием?

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

Жаль, если это не отвечает некоторому требованию, я должен буду просто звонить
tl; доктор> D

18
задан Community 23 May 2017 в 12:07
поделиться

3 ответа

JFormattedTextField является злом из-за плохого использования. Например, если текстовое поле должно принимать только целочисленное значение, JFormattedTextField разрешит любой старый мусор, а затем пожалуется, если фокус потерян. Что еще хуже, у него есть ряд настраиваемых поведений при потере фокуса (явный признак того, что ни один из них не является правильным выбором).

Также есть возможность выбора форматтера «k3wl». Также кажется, что он плохо взаимодействует с документом (он пытается установить DocumentFilter , но он не является частью интерфейса Document ).

15
ответ дан 30 November 2019 в 07:56
поделиться

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

Фактически, он позволяет вам редактировать целочисленные значения, когда данные набираются при использовании MaskFormatter. Так что для простых задач это может быть эффективным.

Редактирование данных - сложная задача. Иногда вам нужно редактировать данные по мере их ввода (в случае проверки целочисленных значений). Иногда вам нужно отредактировать данные после их ввода (в случае проверки даты). Затем, конечно, вам нужно решить, как обрабатывать недопустимые данные.

При выполнении нетривиальных задач может потребоваться определенное количество настроек параметров.

9
ответ дан 30 November 2019 в 07:56
поделиться

Виртуальная функция-член автоматически сделает любую перегрузку этой функции виртуальной.

Поэтому виртуальный в 1) является «необязательным», а деструктор базового класса является виртуальным, что делает все дочерние деструкторы виртуальными.

-121--850068-

Что вы получаете от непреложного F # данные, которые вы не получаете от C # неизменяемые данные?

F # позволяет легко делать измененные копии неизменяемых данных, это очень утомительно и трудоемко для C #. Подумайте о создании записи в F #:

type Person = { FirstName: string; MiddleName: string; LastName: string }
let me = { FirstName = "Robert"; MiddleName = "Frederick"; LastName = "Pickering" }

Скажите, что я хотел изменить поле фамилии, в F # я могу сделать это, сделав копию с помощью ключевого слова «with»:

let me' = { me with LastName = "Townson" }

Если бы вы хотели сделать это в C #, вам бы пришлось создать методы, которые скопировали каждое поле в новую структуру, и есть большая возможность перепутать поля.

Существуют и другие подходящие преимущества коллекций. Например, C # поддерживает неизменяемую коллекцию ReadOnityCollection. Однако при каждом добавлении нового предмета в эту коллекцию необходимо создавать копию целых коллекций. F # build in list позволяет просто добавить новый предмет в конец списка без создания его копии, т.е. вновь полученный список фактически будет совместно использовать большую часть старого списка. То есть

let myList = [3; 2; 1]
let myList' =  4 :: myList

При создании «myList '» весь «myList» сохраняется без изменений, и «4» добавляется к его голове для создания «myList'».

-121--1513201-

Сейчас я борюсь с JFormattetTextField. Я пытаюсь использовать NumberFormat.getPercentInstance () для форматирования моего значения процента.

Хуже всего то, что .getValue () не возвращает то же значение, что и пользователь. Например, если в форматированном текстовом поле ввести 25,5% , то оно округляет его до 26% , но .getValue () возвращает 0,255 . Это Зло.

7
ответ дан 30 November 2019 в 07:56
поделиться
Другие вопросы по тегам:

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