Извините, что несу плохие новости, но, похоже, не существует стандартного способа сделать это кроссплатформенным.Поведение, мнемоника и значки на кнопках по умолчанию обрабатываются очень специфично для каждого внешнего вида.
Вот SO вопрос, который отвечает на вопрос о том, как установить по умолчанию OK и Отменакнопки в диалоговом окне (кнопка по умолчанию устанавливается с помощью getRootPane().setDefaultButton(...)
, а для кнопки «Отмена» требуется пользовательский слушатель клавиатуры. Если вам очень повезло, установка кнопки по умолчанию может добавить к ней значок, в зависимости от того, как кодируется пользовательский интерфейс.
В этой теме форума рассматривается вопрос получения ресурсов значков из UIManager
. Каждый LaF имеет набор значений по умолчанию для пользовательского интерфейса, таких как цвета, текст, границы и значки. Существует ряд значков по умолчанию, которые встречаются во всех LaF, но для нестандартных значков, таких как значки на кнопках, никаких гарантий нет. Однако, если вы скажете мне, какой LaF вы используете впредоставленный вами снимок экрана, я могу посмотреть ключи ресурсов, используемые его пользовательскими классами пользовательского интерфейса (или вы можете найти его самостоятельно, если у вас есть исходный код).Это вспомогательный метод, который ищет значки с помощью этих клавиш и добавляет их к кнопкам, если они найдены.