Magorv, o que fabiofalci comentou está certo.
É o seguinte. Segundo encontrei no site da SUN (Creating a Custom Look and Feel - http://java.sun.com/products/jfc/tsc/articles/sce/index.html), você sempre extende o seu L&F de outro (veja figura 1).
Para facilitar, em vez de você extender do Basic L&F, você pode extender de qualquer outro L&F. No site (http://www.javootoo.com/) tem diversos para baixar.
A paritr deles tu podes fazer ajustes nos componentes que quiser, no seu caso no componente ButtonUI. Além disso, é necessário a mudança na classe …LookAndFeel.java. Dentro dela tem um método que você precisa fazer uns pequenos ajuste.
public UIDefaults getDefaults() {
…
}
Só exemplificando. Se você que mudar só o Botão. Vamos setar como, javax.swing.plaf.metal, o resto dos componentes.
public UIDefaults getDefaults() {
UIDefaults result=super.getDefaults();
// Bind the UI classes to the respective components
String packageName = “nomePacote”;
result.put(“ButtonUI”, packageName+“ButtonUI”);
result.put(“FileChooserUI”, “javax.swing.plaf.metal.” + “MetalFileChooserUI”);
result.put(“LabelUI”, “javax.swing.plaf.metal.” + “MetalLabelUI”);
result.put(“MenuBarUI”, “javax.swing.plaf.metal.” + “MetalMenuBarUI”);
...
}
Pega deste site, http://www.digitprop.com/p.php?page=toniclf_download&lang=eng, o código do L&F. Aí tu fazes as mudanças que te falei. Neste, L&F tem um erro numa classe que é só mudar a visibilidade do método.
Pronto, acho que isso poderá ajudar. Cria em cima de algum L&F pronto. Vai facilitar bastante a sua vida.