"Is this correct? Is it really logical to create 10 new classes only for pushing buttons?"
The answer is YES. You do need to create 10 different instances. It's not difficult. You can either create a helper class or you can just copy and paste something like this
Action leftAction = new AbstractAction(){
public void actionPerformed(ActionEvent e){
// do something when left button pressed;
}
};
InputMap inputMap = panel.getInputMap(JPanel.WHEN_IN_FOCUSED_WINDOW);
ActionMap actionMap = panel.getActionMap();
inputMap.put(KeyStroke.getKeyStroke("LEFT"), "leftAction");
actionMap.put("leftAction", leftAction); <----
For each different action, just copy and paste the Action
code, change the variable, and the action to perform, and input into the InputMap
and the ActionMap
accordingly.
I use both ways for different scenarios. For graphics i prefer the above way. For things like menus, I tend to use a separate class
Take a look at this example