将监听器注册到从阵列创建的JButton的最佳位置在哪里?

Ada*_*ith 3 java swing listener jbutton

我正在从String数组中为菜单创建一些JButton.这些按钮是在扩展JButton的类中创建的.在创建时,按钮调用一个方法来创建一些子按钮(如果父按钮有一个子菜单要显示).

我希望能够将听众注册到每个按钮.每个按钮将更改当前显示的JPanel或打开其子菜单.我以为我会在构造函数中注册监听器,但是我读了一些我在Google上发现的文章,认为这样做是不好的做法.

我想知道的是,最好的地方就是这样,因为我不知道什么是好的做法,什么不是在注册听众时.

Hov*_*els 6

我想我知道你有什么困惑.本文:Java理论与实践:做一个好的(事件)监听器声明从其构造函数中注册一个监听器是不好的做法,但它们的意思是监听器的构造函数,而不是按钮的构造函数.从JButton的构造函数中注册一个监听器应该没问题.你的听众可能是一个匿名的内部类或一个内部私有类(或者如果复杂,一个独立的类),所以这不是一个真正的问题.

编辑
除非您执行此操作后可能会遇到问题,然后将按钮子类化.