[英]MVP, JFrame, JDialog : GUI is freezing
我有一個主框架(帶有JFrame字段)作為asi 視圖 ,然后是演示者 (在視圖的構造函數中創建),該演示者向按鈕和內容添加了偵聽器。 我這樣做是這樣的:
public static void main(final String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
MyWindow window = new MyWindow();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
MyWindow僅在其構造函數中調用一種方法-初始化-僅創建GUI字段。 最后(實際上是代碼的最后一行),它創建演示者。
演示者應在主視圖中的某些事件上顯示新的JDialog。 它有一種方法, 使我的GUI凍結 。 看起來像這樣:
protected double[] getParams(final Class<?> indicatorClass) {
ParametrizableDialog dialog = dialogs.get(indicatorClass); // works well
List<Double> params = new ArrayList<Double>();
dialog.setParams(params);
dialog.setModal(true);
dialog.setLocationRelativeTo(view.getFrame());
dialog.setVisible(true);
System.out.println(params); // it actually works, params are obtained from JDialog as user input
return Doubles.toArray(params); // guava
}
ParametrizableDialog
是普通的JDialog
,實現一個方法接口,該方法接口設置List<Double
>參數,如下所示:
public class ParametrizableDialog extends JDialog implements Parametrizable {
protected List<Double> params;
@Override
public void setParams(final List<Double> params) {
this.params = params;
}
}
現在,有人知道我犯了什么錯誤,為什么我的GUI凍結了? 謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.