Personalizar componentes

Pessoal,

Como faço para personalizar componentes?
Exemplo: criar uma classe MyButton, personalizando algumas caracteristicas ao JButton. Poderia ser desta forma:

import java.awt.;
import javax.swing.
;
import java.awt.event.;
import javax.swing.border.
;

public class MyButton extends JButton
{
public JButton bt;
public int posC=20,posC2=20,posL,posL2,x,y;

public MyButton(String text)
{
bt.setBounds(posC,posL,30,29);
bt.setBorderPainted(false);
bt.setToolTipText(text);
mtAltButton(bt);
}

public void mtAltButton(final JButton bt) {
bt.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
if(bt.isEnabled()==true) {
bt.setBorder(new BevelBorder(BevelBorder.RAISED));
bt.setBorderPainted(true);
}
}
public void mouseExited(MouseEvent e) {
if(bt.isEnabled()==true)
bt.setBorderPainted(false);
}
});
}

static public void mtMudaButton(final JButton bt) {
bt.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
bt.setBorder(new BevelBorder(BevelBorder.RAISED));
bt.setBorderPainted(true);
}
public void mouseExited(MouseEvent e) {
bt.setBorderPainted(false);
}
});
}
}

// Depois para utilizar em outras classes basta declarar:
ex:
MyButton mb;
mb = new MyButton();

Esse é o espírito da coisa. Pegue um componente já feito e o extenda. Tente sempre deixar como um “Java Bean” (encapsulamento, sempre utilize setXXX e getXXX (como read tal writes tal em Object Pascal), para facilitar a sua reutilização!