Я знаю, что вы приняли ответ, но другой способ решить его - создать экземпляр внутреннего класса в экземпляре внешнего класса. например.,
private static void createAndShowGUI() {
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(
new SetLabelForDemo().new JLabeledButton("foo:"));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
Это забавный синтаксис, но он работает. И это не имеет ничего общего с Swing и не связано с использованием внутренних классов внутри статического контекста.