Решение состоит в том, чтобы создать экземпляр LookAndFeel по умолчанию самостоятельно (что никогда не должно выполняться в соответствии с Javadocs). Затем вы можете получить пользовательский интерфейс из LaF по умолчанию и применить его к своей кнопке.
Если тестировал этот код в моем собственном приложении, которое также использует Substance, и оно работало:
LookAndFeel laf = null;
try {
String lafClassName = UIManager.getSystemLookAndFeelClassName();
laf = (LookAndFeel) (Class.forName(lafClassName).newInstance());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
}
if (laf != null) {
laf.initialize();
button.setUI((ButtonUI) laf.getDefaults().getUI(button));
}
Если вы хотите переключаться между различными оболочками Вещества, вы можете использовать SKIN_PROPERTY .