我還在學習接口,所以我的問題可能是一種基本的!是否可以在接口中使用setLayout()以「強制」實現類來使用特定佈局?
我已經read a bit about interfaces並試圖與他們玩弄。我提出的一個用例是「強制」實現類來使用特定的佈局。
實施例:
我有幾個類(第1頁,第2頁,...)延伸JPanel
。他們都在構造函數中通過setLayout(new MigLayout())
使用MigLayout
。如果您忘記設置MigLayout
,這些類可能仍然有效,但仍可能看起來相當正常,或者有時會完全崩潰。因此,最好始終爲所有類設置相同的佈局。
我的想法是創建一個接口並將其應用到類中,這些類在類中使用,尤其是setLayout(new MigLayout())
-方法,因此您不會忘記在您的類中使用此方法。
但是這會給我的錯誤:
Syntax error on token "setLayout", @ expected before this token
我也試過在界面上使用匿名內部類:
ForcedLayout testLayout = new ForcedLayout(){
{
setLayout(new MigLayout());
}};
但我沒有發現任何方式使用testLayout
在實施班級,因此強制佈局。
所以:
- 是否有可能「強迫」的實現類,以通過該接口使用特定的佈局?
- 使用這種方法是否有意義? (方法= I種使用接口來不要忘記使用某些方法),因爲所有的類都擴展
JPanel
因此你可以創建
很好的方式來設置相同的佈局的類!但我的問題是,如果我可以使用一個接口來強制實現類來做到這一點。我想更好地理解接口。 – hamena314
您可以使用[接口默認方法](https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html),但可以在不是完全驗證解決方案的子類中覆蓋 – Braj
啊,那麼我可以在接口中執行'setLayout(MigLayout migLayout)',並讓其他類實現它,而方法的缺點不會被覆蓋。你可以張貼這個答案,我可以接受嗎?我想,這實際上是我想了解的接口。 – hamena314