僅供參考我在Java的Swing中爲我的GUI採用了中介模式。如何克服GUI介體中的併發修改異常?
不幸的是,如果用戶輸入需要一個新窗口,總是會拋出併發修改異常。
這是因爲我的代碼試圖在處理來自現有同事(窗口)的用戶輸入的過程中,將新的同事(新窗口)添加到中介者的同事列表。
例如
public MainScreenColleague implements GuiColleague, ActionListener {
private GuiMediator mediator;
public MainScreenColleague(GuiMediator medi) {
mediator = medi;
// implement JFrame with JButtons
}
public conveyInputToMediator(EventObject event) {
mediator.conveyInputToColleagues(event);
}
public receiveInputFromMediator(EventObject event) {
if (event.getSource() = particularBtn) {
GuiColleague particularColleague = new ParticularConcreteColleague(mediator);
//THIS IS THE CODE THAT THROWS CONCURRENCY EXCEPTION
mediator.addGuiColleague(particularColleague);
}
}
是否有其他一些處理結構可以添加新的同事,我可以採用?提前感謝您的任何建議或意見。
+1對於非常有幫助的替代品!謝謝。 – Arvanem 2011-02-04 23:53:17