Pessoal, desculpas por criar mais um tópico a respeito disso, mas eu queria separar dúvidas de hipótestes.
Bem, a minha hipótese é a seguinte: o erro não está no Substance. Pra mim, está na AppFramework, ou pelo menos no modo como ele seta o look and feel da aplicação. Baixei o código fonte, e vi o seguinte método:
static <T extends Application> T create(Class<T> applicationClass) throws Exception {
...
/* Load the application resource map, notably the
* Application.* properties.
*/
ResourceMap appResourceMap = ctx.getResourceMap();
appResourceMap.putResource("platform", platform());
if (!Beans.isDesignTime()) {
/* Initialize the UIManager lookAndFeel property with the
* Application.lookAndFeel resource. If the the resource
* isn't defined we default to "system".
*/
String key = "Application.lookAndFeel";
String lnfResource = appResourceMap.getString(key);
String lnf = (lnfResource == null) ? "system" : lnfResource;
try {
if (lnf.equalsIgnoreCase("system")) {
String name = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(name);
}
else if (!lnf.equalsIgnoreCase("default")) {
UIManager.setLookAndFeel(lnf);
}
}
catch(Exception e) {
String s = "Couldn't set LookandFeel " + key + " = \"" + lnfResource + "\"";
logger.log(Level.WARNING, s, e);
}
}
return application;
}
Notem a linha 26 (sem trocadilhos) desse trecho de código. Isso não deveria ser feito utilizando o invokeLater do SwingUtilities?
SwingUtilities.invokeLater(...)