Сохранение выделения после нажатия кнопки JButton для стилизации текста - PullRequest
0 голосов
/ 21 ноября 2010

Я делаю довольно простой текстовый редактор, и у меня есть вопрос о моих стилях кнопок.Когда я выделяю текст и нажимаю кнопку «полужирный», текст выделяется жирным шрифтом, как и ожидалось, но мой выбор больше не отображается.Я все еще могу отменить выделение, выделить его курсивом или подчеркнуть его, но вы просто не видите, что выделено.Итак, мне интересно, есть ли параметр, который позволит мне нажимать кнопку, но сохранить свой выбор?Я попробовал 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);

Любая помощь приветствуется.

Ответы [ 2 ]

5 голосов
/ 21 ноября 2010

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

boldButton.setFocusable( false );
1 голос
/ 21 ноября 2010

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

...