Não, não está errado - mas você copiou corretamente os nomes dos arquivos ? Provavelmente são
cidade.class, cidade$1.class ,cidade$2.class … cidade$6.class
Vou explicar porquê.
Quando você escreve um programa desse jeitinho aqui:
jbutton.addActionListener (new ActionListener() {
public void actionPerformed(ActionEvent e) {
...
}
});
você está criando uma instância de uma “classe anônima” (sem nome), que herda da classe ou implementa a interface indicada depois do “new”.
Neste caso, foi criada uma classe anônima que implementa a interface ActionListener.
Só que o compilador Java não pode simplesmente criar uma “classe sem nome” para gerar um arquivo .class referente a ela. Em vez disso, ele pega o nome da sua classe, e acrescenta um “$” + um número, para poder batizar o arquivo correspondente a essa classe anônima.
Como pode haver várias classes anônimas dentro da definição de um arquivo de classe (pense em uma janela que tem vários botões, portanto vários eventos) então cada uma dessas classes é diferenciada por um número.
Essas classes não são públicas e não podem ser referenciadas diretamente dentro do seu código. Fazer algo como “new Classe$1()” não vai funcionar do jeito que você quer.