Сохранение отбора после нажатия на jbutton в стиль текста
Вопрос
Я делаю довольно простой текстовый редактор, и у меня есть вопрос о моих стилях кнопок. Когда я выделяю текст и щелкните мою кнопку «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
сделать это.