Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Попытайтесь использовать глаголы в своих диалоговых окнах.
Это означает использование
вместо
, О, и нанять разработчика / изучают навыки проектирования.:)
Как мой преподаватель структуры данных, на которого указывают сегодня: Дайте инструкции относительно того, как Ваша программа работает среднему пользователю. Мы программисты часто думают, что мы довольно логичны с нашими программами, но средний пользователь, вероятно, не будет знать, что сделать.
(Украденный от Joel: o))
не отключают/удаляют опции - скорее дают полезное сообщение, когда пользователь нажимает/выбирает его.
Дизайн Повседневных Вещей - Donald Norman
канон А сведений дизайна и основание многих курсов HCI в университетах во всем мире. Вы не разработаете большой GUI через пять минут с несколькими комментариями от веб-форума, но некоторые принципы доберутся, Ваши взгляды указали правильный путь.
-
MC
Покажите интерфейс выборке пользователей. Попросите, чтобы они выполнили типичную задачу. Наблюдайте за их ошибками. Слушайте их комментарии. Внесите изменения и повторение.
Я рекомендовал бы получить хорошее основательное понимание дизайна GUI путем чтения книги Дизайн Повседневных Вещей . Хотя печатаемое основное является комментарием от Joel Spolsky : Когда поведение приложения отличается к тому, что пользователь ожидает происходить тогда, у Вас есть проблема с Вашим графическим интерфейсом пользователя.
лучший пример, когда кто-то подкачивает вокруг кнопки OK and Cancel на некоторых веб-сайтах. Пользователь ожидает, что кнопка OK будет слева, и кнопка Cancel , чтобы быть справа. Таким образом короче говоря, когда поведение приложения отличается к тому, что ожидает пользователь, что произойти тогда, у Вас есть проблема проектирования пользовательского интерфейса.
, Хотя, лучший совет, в, неважно, за каким шаблоном разработки или шаблоном разработки Вы следуете, состоит в том, чтобы сохранить дизайн и соглашения последовательными всюду по приложению.
Я пытаюсь адаптироваться к среде.
При разработке для Приложения Windows, я использую Пользовательские Инструкции по Опыту Windows Vista , но когда я разрабатываю веб-приложение, я использую соответствующие инструкции, потому что я разрабатываю голландские веб-сайты, которые я использую инструкции "Drempelvrij" , которые основаны Инструкции по Доступности веб-контента (WCAG 1.0) Консорциумом World Wide Web (W3C).
причина я делаю это должно уменьшить кривую обучения нового пользователя.
Навигационные цепочки в веб-приложениях:
Говорят->-> Пользователь->, Где-> Она-> Находится в системе
, Это довольно трудно сделать в "динамических" системах с разнообразными путями к тем же данным, но это часто помогает переместиться по системе.
При выполнении чего-нибудь для сети или какого-либо обращенного к передней стороне приложения в этом отношении Вы действительно должны ее себе для чтения...
Попытайтесь думать о том, чего Ваш пользователь хочет достигнуть вместо того, каковы требования.
пользователь будет вводить Вашу систему и использовать ее для достижения цели. При открытии calc, необходимо сделать простое быстрое вычисление 90% времени так вот почему по умолчанию, это установлено на простой режим.
Так не думают о том, что приложение должно сделать, но думать о пользователе, который будет делать его, вероятно, надоевший, и пытаться разработать на основе того, каковы его намерения, попытайтесь сделать его жизнь легче.
Никогда не просят, чтобы "Действительно ли Вы были уверены?". Просто позвольте неограниченную, надежную отмену/восстановление.
Постарайтесь не просить, чтобы пользователь сделал выбор каждый раз, когда Вы можете (т.е. не создавать ветвление с диалоговым окном конфигурации!)
Для каждой опции и каждого окна сообщения, спросите себя: я могу вместо этого придумать некоторое разумное поведение по умолчанию, которое
я могу использовать свой карманный компьютер Palm в качестве примера: настройки являются действительно минималистическими, и я довольно доволен этим. Основные приложения хорошо разработаны достаточно, что я могу просто использовать их, не чувствуя потребность в тонкой настройке. Хорошо, существуют некоторые вещи, которые я не могу сделать, и на самом деле я сортирую, должен был адаптироваться к инструменту (вместо противоположного), но в конце это действительно делает мою жизнь легче.
Этот веб-сайт является другим примером: Вы ничего не можете настроить, и все же я нахожу действительно хорошим использовать.
Разумные значения по умолчанию может быть трудно выяснить, и простые тесты удобства использования могут дать много представлений для помощи Вам с этим.
При создании сообщений об ошибках сделать сообщение об ошибке ответы на эти 3 вопроса (в указанном порядке):
Что случилось?
Почему это произошло?
Что можно с этим сделать?
Это из «Руководства по человеческому интерфейсу: рабочий стол Apple Интерфейс »(1987, ISBN 0-201-17753-6), но его можно использовать для любого сообщения об ошибке где угодно. Существует обновленная версия для Mac OS X. Страница Microsoft Сообщения пользовательского интерфейса говорит то же самое: "... в случае сообщения об ошибке, вы должны указать проблему, причину и действие пользователя для устранения проблемы ».
Также включите любую информацию, известную программе, не просто фиксированная строка. Например, для части сообщения об ошибке «Почему это произошло» используйте «Необработанный файл спектра. L: \ refDataForMascotParser \ TripleEncoding \ Q1LCMS190203_01Doub leArg.wiff не существует ", а не просто" Файл существует не существует ".
Сравните это с печально известным сообщением об ошибке:" Ошибка случилось ».
Я тестирую свой графический интерфейс на примере бабушки.