だから、Java Swing でこの素敵で気の利いた MVC アーキテクチャのアプリケーションがあり、プログレス バーを追加したいのですが、JProgressBar をビューに組み込むための優れた設計方法について混乱しています。するべきか:
コントローラの状態に DefaultBoundedRangeModel を追加してエクスポートしますか?
class Model { final private DefaultBoundedRangeModel progress = new DefaultBoundedRangeModel(); public void getProgressModel() { return progress; } public void setProgressCount(int i) { progress.setValue(i); } } class Controller { Model model; int progressCount; void doSomething() { model.setProgressCount(++progressCount); } } class View { void setup(Model m) { JProgressBar progressBar = /* get or create progress bar */ ; progressBar.setModel(m.getProgressModel()); } } /* dilemma: Model allows progress to be exported so technically all of the progress state could be set by someone else; should it be put into a read-only wrapper? */
JGoodies Binding を使用して、JProgressBar の視覚的な状態をモデルの状態に接続しようとしますか?
class Model { private int progress; public void getProgressCount() { return progress; } public void setProgressCount(int i) { progress = i; } } class View { void setup(Model m) { ProgressBar progressBar = /* get or create progress bar */ ; CallSomeMagicMethodToConnect(m, "progressCount", progressBar, "value"); // is there something that works like the above? // how do I get it to automatically update??? } }
または、他の何か???
編集:より具体的に: プログレス バーを含むステータス バーがあり、適切な MVC 実装がある Java のアプリケーションの現実的なソースの良い例を教えてもらえますか?