Если вы используете JLabel в качестве заполнителя, то есть инициализируйте его пустой строкой и установите текст позже:
Поскольку размер JLabel рассчитывается, когда панель размещается (то есть на раннем этапе) и основана на содержащемся тексте, вы, вероятно, в итоге получите метку, считая, что она имеет предпочтительный размер (0, 0).
В этом случае вы должны сообщить метке, какого размера она должна запрашивать, вызвав setPreferredSize с соответствующим значением.
И еще одной причиной может быть менеджер компоновки, который вы используете на окружающей панели. Возможно, вы добавляете ярлык и кнопку в одном месте, например, BorderLayout.CENTER. Это объясняет, почему отображается только один из двух.