Как заполнить кнопку LWUIT изображением, когда оно сфокусировано? - PullRequest
3 голосов
/ 27 ноября 2011

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

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

Button button = new Button(Image.createImage("/green.JPG"));
form.addComponent(button);

Я получил следующий результат , когда предмет сфокусирован :

enter image description here

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

1 Ответ

5 голосов
/ 28 ноября 2011

1) Промежуток, который представляет собой белую границу между контентом, зеленым значком и границей компонента, называется заполнением . Чтобы подогнать изображение под границы кнопок, удалите отступы во всех направлениях ( TOP , BOTTOM , LEFT и RIGHT ) в каждом из состояния компонентов, а именно: Не выбрано , Выбрано , Нажато и Отключено .

Так что для невыбранного состояния это

button.getUnselectedStyle().setPadding(0, 0, 0, 0);

сделать это для других состояний кнопки.

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


2) Для удаления границы кнопки вызовите нижеприведенный синтаксический метод для каждого состояния компонента

button.get[ComponentState]Style().setBorder(null, false);

В вашем случае для сфокусированного состояния, button.getSelectedStyle().setBorder(null, false);


3) Чтобы установить значок для соответствующего состояния кнопки, используйте следующие методы,

button.setIcon(image);                  
button.setRollOverIcon(image);
button.setPressedIcon(image);
...