我正在构建一个简单的GUI程序。 其中一个类是带有几个按钮的工具栏(JPanel)。另一个类是主窗口,其中包括此工具栏及其按钮。 我正在尝试为每个按钮添加动作侦听器,因此它们在其他组件上执行Window的方法,就像其他JPanels一样。
据我所知,显而易见的解决方案是将监听器添加到Window类中,如下所示:
class Window
{
private Toolbar toolbar;
private void *methodOnOtherWindowComponents*() {
....;
}
// Method to add Listeners on Buttons via anonymous classes
private void addListeners() {
toolbar.getButton().addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event){
*methodOnOtherWindowComponents()*
但是,由于Window类只是为了把事情放在一起,所以添加Listeners似乎太复杂了。
如果我尝试在工具栏类中添加监听器(创建按钮的位置)(更好的解决方案)或单独的类(最理想的解决方案),那么我就无法引用 methodToExecute()在Window类中。
我希望找到一种方法来添加一个像这样的监听器:
void actionPerformed(ActionEvent event, Window w) {
w.methodOnOtherWindowComponents()
}
有类似的方法吗? 谢谢。