I draw each key with a for loop that counts through the lwgjl ids:
for (int i=2; i<14; i++) {
button = new GuiButton(this.currentId, (startX+rowPos*30), startY, 25, 20, translateKey(i));
this.buttonList.add(button);
currentId++;
}
I use translateKey(int id), which is just a modified version of Keyboard.getKeyName(int id), to get the name of the key. The id is also used to with setKeyModifierAndCode