java - Should I create Swing components within Actions? -
i creating actions swing components, however, need generate confirmation jdialog. should creating jdialog within action itself, should pass in action, or there alternative method?
example
public static class create extends abstractaction { @override public void actionperformed(actionevent event) { int selection = joptionpane.showconfirmdialog(...); // ... processing } } this illustration quite hard unit test since involves automating selection of jdialog (which feels code smell).
solution?
public static class create extends abstractaction { private jdialog dialog = null; public create(jdialog dialog) { this.dialog = dialog; } @override public void actionperformed(actionevent event) { dialog.display(); // ... processing } }
how this:
class dialogs { public static dialogs instance = new dialogs(); public int confirm(string message) { homecoming joptionpane.showconfirmdialog(null, message); } } then phone call dialogs.instance.confirm() everywhere phone call joptionpane.showconfirmdialog(). testing, set dialogs.instance mocked value.
java swing user-interface
No comments:
Post a Comment