Можно посмотреть на интерфейс java.swing.Action, и абстрактный класс
java.swing.AbstractAction.
А потом еще на jdesktop.swingworker.SwingWorker и на его потомка
org.jdesktop.application.Task.
Задачи которые решены с помощью вышеперечисленных классов довольно
сильно похожи на перечисленные вами. Но только в SwingWorker
реализованно выполнение задачи в фоновом процессе, а в интерфейсе Action
есть методы для разрешения/запрещения действия (для того, чтобы
управлять GUI приложением).
В общих чертах идея такая.
public class BreezeMeasure extends AbstractAction {
public BreezeMeasure(int secondsToMeasure, int breezeCount) {
// здесь определяете как создавать эти объекты (и все что
// нужно устанавливаете
}
public void actionPerformed() {
// здесь собственно работа
}
}
public class PlayAudioFile extends AbstractAction {
public PlayAudioFile(String fileName) {
}
public void actionPerformed() {
}
}
Т.е. каждый объект реализует один метод actionPerformed а все остальное
одинаковое для всех — реализуется в AbstractAction.
Posted via RSDN NNTP Server 2.1 beta