Formatando a hora no Relogio

ei pessoal, aí vai o código fonte de um relógio que eu fiz, só que tá com um probleminha na formatação. Como eu faço para com que os digitos das horas, dos minutos e dos segundos tenham 2 digitos cada, além de fazer ele ficar no formato de 12 horas, mostrando am ou pm ou não.

queria saber também como faço para mudar a cor da fonte dos números
e se não for demais o nome daquela fonte que se usa em relógio digital.

valeu!!!


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;

public class Relogio extends JFrame implements ActionListener{
		
	private javax.swing.Timer t;
	private Date d;
	private JLabel label;
	private JFrame frame;
		
	public Relogio(){
		
		
		super("Bernardino's Clock");
						
		label = new JLabel();
		label.setFont(new Font("ArialNarrows", Font.BOLD, 42));
		JPanel panel = new JPanel();
		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
		panel.add(Box.createVerticalStrut(11));
		panel.add(label);
		Container c = getContentPane();
		FlowLayout layout = new FlowLayout();
		layout.setAlignment(FlowLayout.CENTER);
		c.setLayout(layout);
		c.add(panel);
		
		setResizable(false); 
		setSize(210, 115);
		show();
		
		disparaRelogio();											
	}
	
	public void disparaRelogio(){
	
		if(t == null){		 
			t = new javax.swing.Timer(1000, this);
			t.setInitialDelay(0);
			t.start();			
		}
		else if(!t.isRunning()){
					 t.restart();		
		}
	}
		
	public void actionPerformed(ActionEvent ae){
		d = new Date();
		label.setText(d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds());		
	}	
	
	public static void main(String args[]){
		
		new Relogio();
	}	
}	

Olá:

Por que não usa o java.text.SimpleDateFormat?

tentei, mas não deu certo. Explique aí como devo usar.

olá…
Tenho uma solução que pode ser usada tanto em HORA como em DATA.
Obs: Procure usar a classe GregorianCalendar em vez de Date.

[code] GregorianCalendar calendario = new GregorianCalendar();

	int h = calendario.get(GregorianCalendar.HOUR_OF_DAY);
	int m = calendario.get(GregorianCalendar.MINUTE);
	int s = calendario.get(GregorianCalendar.SECOND);

	String hora =
		((h < 10) ? "0" : "")
			+ h
			+ ":"
			+ ((m < 10) ? "0" : "")
			+ m
			+ ":"
			+ ((s < 10) ? "0" : "")
			+ s;
			
	label.setText(hora);

[/code]

valeuz