I am currently replacing my anonymous ActionListeners
new ActionListener() {
@Override
public void actionPerformed(final ActionEvent event) {
// ...
}
}
with class files representing actions:
public class xxxxxxxAction extends AbstractAction {
}
However, my GUI is able to perform a lot of actions (eg. CreatePersonAction, RenamePersonAction, DeletePersonAction, SwapPeopleAction, etc.).
Is there a good way to organize these classes into some coherent structure?
You can keep your actions in a separate package to isolate them. Sometimes, it is useful to keep them in one class, especially if actions are related or have a common parent, for example:
public class SomeActions {
static class SomeActionX extends AbstractAction {
@Override
public void actionPerformed(ActionEvent e) {
}
}
static class SomeActionY extends AbstractAction {
@Override
public void actionPerformed(ActionEvent e) {
}
}
static class SomeActionZ extends AbstractAction {
@Override
public void actionPerformed(ActionEvent e) {
}
}
}
Then to access them:
JButton button = new JButton();
button.setAction(new SomeActions.SomeActionX());