Java SwingでMVCアーキテクチャのアプリケーションを使っています。プログレスバーを追加したいのですが、JProgressBarを私のビューに組み込むGood Design Methodsについて混乱しています。私は必要があります。プログレスバー+ JavaのMVC =?
は私のコントローラの状態にDefaultBoundedRangeModelを追加し、それをエクスポートしますか?私のモデルの状態にJProgressBarの者の視覚的な状態を接続しようとするバインディング
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?
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でアプリケーションのための現実的なソースの良い例に私を指すことができますか?
、あなたはSwingWorkerのを見なければならない - それは、この問題を扱う(からの進捗状況を更新バックグラウンドタスク)。 –