gpt4 book ai didi

java - 通过 setName() 比较组件。

转载 作者:行者123 更新时间:2023-12-01 08:14:41 26 4
gpt4 key购买 nike

我正在编写一个图像拼图游戏,代码的一部分是将用户选择的碎片与正确图像的碎片进行比较。

每个图像片段都已作为 ImageIcon 添加到 JButton。

需要一个标识符来区分每个图像片段并进行比较。

我正在为每个创建为标识符的 JButton 设置一个 setName()。

当用户将拼图 block 从原始 3x3 网格中拖动到另一个 3x 网格进行匹配后,释放鼠标时,比较开始。

我在从比较 if 语句中删除错误时遇到问题。

我从这个SO线程中得到了比较的想法 - link

    private JButton[] button = new JButton[9];
private JButton[] waa = new JButton[9];

private String id;
private int cc;
private String id2;
private int cc2;

// setName for each of the 9 buttons in the original 3x3 grid being created
// which stores the shuffled puzzle pieces
for(int a=0; a<9; a++){
button[a] = new JButton(new ImageIcon());
id += Integer.toString(++cc);
button[a].setName(id);
}

// setName for each of the 9 buttons in the other 3x3 grid
// where the images will be dragged to by the user
for(int b=0; b<9; b++){
waa[b] = new JButton();
id2 += Integer.toString(++cc2);
waa[b].setName(id2);
}

// check if puzzle pieces are matched in the correct place
// compare name of original 'button' array button with the name of 'waa' array buttons
button[a].addMouseListener(new MouseAdapter(){

public void mouseReleased(MouseEvent m){
if(m.getbutton().getName().equals (waa.getName())){

}
else{
JOptionPane.showMessageDialog(null,"Wrong! Try Again.");
}
}
}

最佳答案

在您的 mouseReleased 事件中,m.getButton() 返回被单击的鼠标按钮。您会想做一些类似这样的事情来让你们更接近:

if (m.getComponent().getName().equals(waa.getName())) {

m.getComponent() 返回触发事件的 Component 对象(您的 JButton)。从那里您可以与您正在使用的 getName 方法进行比较。

还有一个额外的问题,因为您的 waa 变量是一个数组。我不确定您想要如何比较它们,是否运行数组并确保索引和名称匹配,但这是您需要研究的另一个问题。

关于java - 通过 setName() 比较组件。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453513/

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