gpt4 book ai didi

java - 无法在 JPanel 中添加 Action 监听器

转载 作者:行者123 更新时间:2023-11-30 06:54:56 24 4
gpt4 key购买 nike

我不断收到错误消息,提示我无法将 Action 监听器添加到对象。我正在尝试将它添加到我的主框架中,以便将其设置在正确的位置。

public class Grid extends JPanel{
public Grid (String title){
setLayout(null);
setSize(295,295);
setLocation(10,10);
buttons = new JButton[5][5];
for(int row=0; row<5; row++) {
for(int col=0; col<5; col++) {
buttons[row][col] = new JButton();
buttons[row][col].setLocation(5+col*55, 5+row*55);
buttons[row][col].setSize(50,50);
buttons[row][col].setBackground(colours[randCol()]);
buttons[row][col].addActionListener(this);
add(buttons[row][col]);
}
}
}
}

最佳答案

i have implented the actionlistener in the grid class and i receive this, cgame.Grid is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener

那是因为每当一个类实现一个接口(interface)时,它需要覆盖接口(interface)中所有可用的抽象方法(不管你是否有兴趣使用它) .

ActionListener接口(interface)下,有一个抽象方法

actionPerformed(ActionEvent)

如果您的 Grid 类实现了 ActionListener,那么它也应该覆盖它:

class Grid extends JPanel implements ActionListener{

//your other attributes, initializations & constructors..

@Override
public void actionPerformed(ActionEvent e){
//your actions..
}
}

我建议您为 Grid 类使用布局。从你的类 Grid 的命名。如果您打算将组件排列到大小相似的框(或网格)中,则可以考虑使用 GridLayout。或者,如果您的某些网格具有不同的宽度和/或高度,您可以考虑使用 GridBagLayout

关于java - 无法在 JPanel 中添加 Action 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com