我正在从JCustomPanel
类派生一个类,我们称之为JPanel
。需要初始化几个基本属性,例如不透明度,背景颜色,各种侦听器等。如何正确完成初始化?
最明显的想法是在JCustomPanel
的构造函数中执行此操作。但是,所有操纵这些属性的方法(例如setBackgroundColor
或addComponentListener
)都是可覆盖的,我的IDE抱怨(我认为这是正确的)不应该在构造函数中调用可覆盖的方法。 / p>
另一种选择是在init
中定义一个JCustomPanel
方法来完成所有这些工作,然后每当我创建一个新的JCustomPanel
时手动调用它。但这很烦人,人们很容易忘记拨打init
,这会引入错误。
那么这里的最佳做法是什么?
顺便说一句,我查看了JList
的源代码,并在其构造函数中调用setOpaque
(参见here)。