Una cosa alla volta:
1) Perchè hai dovuto togliere il metodo pack()? Perchè quel metodo imposta automaticamente la dimensione della finestra, adattandola ad occupare il minor spazio possibile in base ai componenti che vi sono inseriti. In pratica contraddice quello che volevi fare tu 
2) Come fai a fare in modo che la JLabel non si ingrandisca a occupare tutto lo spazio del JFrame? Devi semplicemente cambiare LayoutManager. Di default è impostato un BorderLayout e sempre di default il primo componente va a finire nel BorderLayout.CENTER. Se non ci sono altri componenti, l'unico presente prende tutto lo spazio.
3) Come fai a posizionare i tuoi componenti dove vuoi con la dimensione che vuoi? Basta rimuovere il LayoutManager. Nessuno ti obbliga ad usarlo. Per fare questo devi utilizzare i seguenti metodi:
codice:
private static void createAndShowGUI(String d)
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Agenda");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
// Qui tolgo il LayoutManager
frame.getContentPane().setLayout( null );
JLabel label = new JLabel(d);
label.setSize(80,20)
// Qui imposto la posizione e la dimensione della JLabel:
// Posizione (x: 20, y: 10)
// Dimensione (orizzontale: 80, verticale: 25)
label.setBounds(20, 10, 80, 25);
frame.getContentPane().add(label);
frame.setVisible(true);
}
Ciao.