Чтобы создать экземпляр нестатического внутреннего класса, вам нужно иметь экземпляр окружающего внешнего класса (а его нет, потому что someMethod
является статическим):
JButton button = new JButton( "Foo" );
button.addActionListener(new GUI().new ButtonHandler());
Если для внутреннего класса нет необходимости обращаться к членам / методам внешнего класса, сделайте внутренний класс статическим, тогда вы можете создать экземпляр внутреннего класса следующим образом:
static class ButtonHandler implements ActionListener { ... }
...
JButton button = new JButton( "Foo" );
button.addActionListener(new GUI.ButtonHandler());
(в этом случае даже обычный new ButtonHandler()
будет работать, потому что someMethod()
определен во внешнем классе GUI
, то есть в том же «пространстве имен», что и ButtonHandler
)