gpt4 book ai didi

java - AddactionListener 不带参数

转载 作者:行者123 更新时间:2023-11-30 06:22:44 26 4
gpt4 key购买 nike

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Concentration extends JFrame implements ActionListener {

private JButton buttons[][]=new JButton[4][4];
int i,j,n;

public Concentration() {
super ("Concentration");
JFrame frame=new JFrame();
setSize(1000,1000);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel=new JPanel(new GridLayout(4,4));
panel.setSize(400, 400);
for( i=0; i<buttons.length; i++){
for (j=0; j<buttons[i].length;j++){
n=i*buttons.length+buttons[i].length;
buttons[i][j]=new JButton();
panel.add(buttons[i][j]);
buttons[i][j].addActionListener(this);
}
}
add(panel);
pack();
setVisible(true);
}

public void actionPerformed(ActionEvent e) {
buttons[i][j].setIcon(new ImageIcon(
getClass().getResource("/images/2.jpg")));
}

public static void main(String args[]){
new Concentration();
}
}

这是我的代码。我正在制作内存游戏。我想做到这一点,每次点击一个按钮,那个按钮显示图像但是

 buttons[i][j].addActionListener(this);

在那一点上,methot 不能取 i 和 j 并且不显示任何图像。

但是例如当我这样做的时候

 buttons[2][2].addActionListener(this);

它仅在 2x2 中显示。图像。我该怎么做才能解决这个问题?

最佳答案

可能的解决方案:

  • 在 ActionListener 内部,遍历按钮数组以查看数组中的哪个 JButton 与按下的按钮匹配,通过调用 e.getSource()
  • 获得
  • 提供与 i 和 j 对应的 JButtons actionCommand 字符串
  • 创建一个单独的 ActionListener 实现类,该类具有可通过构造函数设置的 i 和 j 字段,并为每个按钮提供一个唯一的 ActionListener,并设置了 i 和 j。

关于java - AddactionListener 不带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18958606/

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