2012-02-08 30 views
0

在Java SWT實驗室我以前有,它談論使用複合材料,然後加入main()的Java SWT:複合VS殼牌

public static void main(String[] args){ 
    Display display = new Display(); 
    Shell shell = new Shell(display); 
    Calculator calc = new Calculator(shell, SWT.NONE); 
    calc.pack(); 
    shell.pack(); 
    shell.open(); 
    while(!shell.isDisposed()){ 
      if(!display.readAndDispatch()) display.sleep(); 
    } 
} 

但爲什麼做這種方式。我不應該使用Shell嗎?這可能是什麼原因?

+2

你的問題不清楚:首先,這是什麼計算器類?第二:使用'Shell'(見第3行)。你的問題是什麼意思? – 2012-02-08 13:42:39

回答

1

所以你的問題是爲什麼你應該擴大Composite,不應該延伸Shell?那麼,你可以使用任何你想要的方法。但是,如果你把你的東西直接放到shell中,在其他地方重複使用這些代碼會更困難。例如。使用Composite作爲組件的基類,允許您使代碼更加可重用(您不能將Shell放在另一個Composite的中間)。

+3

[文檔](http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/package-summary.html)很清楚 - 'Shell':_IMPORTANT:這個類不打算被子類化._' Composite':_這個類可以被自定義控件實現者繼承,他們構建的控件是由其他控件集合構建的。 – McDowell 2012-02-08 13:58:31