我幾個月前MY POSTJAVA:&JProgressBar的Files.copy具有觀察員和SwingWorker的第1類
寫了aricle但我想做出一些改變,以我。現在我所有的代碼是在SwingWorker的制定類。但我想使用MVC方法並使用觀察者模式更新視圖中的變量。
現在我有這樣的事情
public class CopyFrame extends JFrame {
private JTextarea textArea;
private JProgresbar progresbar;
public CopyFrame(){
progresbar = new JProgresbar
textArea = new JTextarea();
progresbar.setMaximum(100));
/*in this method I added the components correctly*/
addComponentsCorrecty();
new Task().execute();
}
class Task extends Swingworker<Void,Void>{
/*Dp this 10 times*/
Files.Copy(source, destination);
progresbar.setValue(progresbar.getValue + 10);
String info = String.format("%s is completed", source)
textArea.setText(textArea.getText + "\n" + info)
}
}
,我想創造一些這樣的
public class CopyFrame extends JFrame {
private JTextarea textArea;
private JProgresbar progresbar;
public CopyFrame(){
progresbar = new JProgresbar
textArea = new JTextarea();
progresbar.setMaximum(100));
/*in this method I added the components correctly*/
addComponentsCorrecty();
Task task = new Task();
task.addObserver(this);
task.execute
}
@Override
public void update(){
progresbar.setValue(progresbar.getValue +10);
textArea.setText(textArea.getText + "\n" + task.getInfo)
}
}
class Task extends Swingworker<Void,Void> extends Observer{
private String info;
public Task(){
doTask;
}
public void doTask(){
/*Dp this 10 times*/
Files.Copy(source, destination);
info = String.format("%s is completed", source)
setChanged();
notifyObservers();
}
public String getInfo(){
return info;
}
}
我怎樣才能做到這一點?因爲我不能從2個班擴展。 我想更新從另一個類(TASK)的progresbar
什麼是
'SwingWorker'提供了一個觀察者模式的一種形式,一個'PropertyChangeListener' – MadProgrammer