我还在学习接口,所以我的问题可能是一种基本的!是否可以在接口中使用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