Как сделать кнопку подсвеченной или бледной в java swing правильно? - PullRequest
2 голосов
/ 10 мая 2011

Я использую Swing с интерфейсом по умолчанию (без каких-либо специальных скинов).

Как сделать несколько кнопок / текстовых полей более яркими или более бледными? Это означает, что пользователь ожидает / не ожидает (хотя и не полностью отключен) нажатия кнопки.

Пример: пользователь изменил поле - кнопка «Сохранить» становится более яркой (например, зеленой). Статус «ошибка компиляции» - кнопка «Выполнить» неактивна (хотя пользователь все еще может выполнить предыдущую версию чего-либо) Пользователь заполнил поле «пароль» - он ожидал заполнить «подтверждение пароля» - чтобы оно стало ярким.

  • У меня есть: {нормально, отключено, невидимо}
  • Я хочу: {ярко, нормально, бледно, отключено, невидимо}.

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

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

Ответы [ 2 ]

1 голос
/ 10 мая 2011

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

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

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

1 голос
/ 10 мая 2011

Просто используйте setBackground (), чтобы изменить цвет в соответствии со статусом компонента. Возможно, даже создайте пользовательский компонент, у которого есть метод для изменения статуса, и он знает, какой цвет соответствует этому статусу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...