Сохранение отбора после нажатия на jbutton в стиль текста

StackOverflow https://stackoverflow.com/questions/4235804

Вопрос

Я делаю довольно простой текстовый редактор, и у меня есть вопрос о моих стилях кнопок. Когда я выделяю текст и щелкните мою кнопку «BOLD», текст смелые, как и ожидалось, но мой выбор не является не видимым. Я все еще могу разделить выбор, курсирует его или подчеркните его, но вы просто не видите, что выбрано. Итак, мне интересно, есть ли настройка, которая позволит мне нажать кнопку, но сохранить мой выбор? Я попробовал jmenuitem вместо jbutton, и это, казалось, работал, но тогда он сделал мою панель инструментов выглядеть довольно плохо. Пример код ниже.

//frame and pane creation up here
JToolBar tool = new JToolBar();
JToggleButton boldButton = new JToggleButton("Bold");
boldButton.addActionListener(new StyledEditorKit.BoldAction());
tool.add(boldButton);

Любая помощь ценится.

Это было полезно?

Решение

Итак, мне интересно, есть ли настройка, которая позволит мне нажать кнопку, но сохранить мой выбор?

boldButton.setFocusable( false );

Другие советы

Как вы заметили, выбор все еще там, но нажатие на кнопку панели инструментов удаляет фокус от текстовой панели и скрывает выделение. Вам нужно установить фокус обратно, используя requestFocus. Отказ Тем не менее, вам нужно будет написать свой собственный слушатель действий, чтобы добавить код фокуса - вы можете продлить BoldAction сделать это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top