Каждый раз, когда запускается ваш обновитель ActionListener, он просматривает все сообщения, устанавливая текст вашей метки для каждого сообщения. В конце вашего обновления, последнее сообщение отображается в ярлыке. Это происходит так быстро, что вы просто не видите первых трех установленных сообщений, пока они не были перезаписаны.
Вам необходим ActionListener, который может запомнить, какое сообщение должно отображаться следующим.
ActionListener updater = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jLabelNumber.setText(messages[i]);
i++;
if (i >= messages.length) {
i = 0;
}
}
private int i = 0;
};