gpt4 book ai didi

java - 翻转存储卡游戏的卡片在 java 中不起作用(没有小程序)

转载 作者:行者123 更新时间:2023-11-29 07:48:16 28 4
gpt4 key购买 nike

我正在制作内存卡游戏。我首先添加了 5 个 ImageIcons,卡片的初始值(图像)处于翻转状态,添加了一个用于通过 Action Listener 翻转卡片的按钮,但是当我单击该按钮时似乎无法翻转它。我还是 GUI 的初学者,我不想使用小程序。

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

//this class gonna control the basic ops of the game
public class MemoControl extends JFrame{

public JLabel label;
public JButton button;

//images
public ImageIcon image1;
public JLabel label1;
public ImageIcon image2;
public JLabel label2;
public ImageIcon image3;
public JLabel label3;
public ImageIcon image4;
public JLabel label4;
public ImageIcon image5;
public JLabel label5;

public MemoControl(){

setLayout(new FlowLayout());

image1 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label1 = new JLabel(image1);
add(label1);

image2 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label2 = new JLabel(image2);
add(label2);

image3 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label3 = new JLabel(image3);
add(label3);

image4 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label4 = new JLabel(image4);
add(label4);

image5 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label5 = new JLabel(image5);
add(label5);


/*label = new JLabel("Welcome to AMY Memo Game");
add(label);*/

/*textField = new JTextField(15);
add(textField);*/

button = new JButton("Flip");
add(button);

EventClass event = new EventClass();
button.addActionListener(event);

}//MyMemo constr end

private class EventClass implements ActionListener{

public void actionPerformed(ActionEvent e){
if(e.getSource() == button){
image1 = new ImageIcon(getClass().getResource("deer_card.jpg"));
label1 = new JLabel(image1);}

}
}//Event class end

public static void main(String args[]){

MemoControl gui = new MemoControl();

gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.pack();
gui.setVisible(true);
gui.setTitle("My Memo");

}//main end

}//AMYMemo class end

更新后的代码:

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

//this class gonna control the basic ops of the game
public class MemoControl extends JFrame{

public JLabel label;
public JButton button;

//images
public ImageIcon image1;
public JLabel label1;
public ImageIcon image2;
public JLabel label2;
public ImageIcon image3;
public JLabel label3;
public ImageIcon image4;
public JLabel label4;
public ImageIcon image5;
public JLabel label5;

public MemoControl(){

setLayout(new FlowLayout());

image1 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label1 = new JLabel(image1);
add(label1);

image2 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label2 = new JLabel(image2);
add(label2);

image3 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label3 = new JLabel(image3);
add(label3);

image4 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label4 = new JLabel(image4);
add(label4);

image5 = new ImageIcon(getClass().getResource("card_cover1.jpg"));
label5 = new JLabel(image5);
add(label5);


/*label = new JLabel("Welcome to AMY Memo Game");
add(label);*/

/*textField = new JTextField(15);
add(textField);*/

button = new JButton("Flip");
add(button);

EventClass event = new EventClass();
button.addActionListener(event);

}//MyMemo constr end

private class EventClass implements ActionListener{

public void actionPerformed(ActionEvent e){
if(e.getSource() == button){

image1 = new ImageIcon(getClass().getResource("deer_card.jpg"));
label1.setIcon(image1);
}

}
}//Event class end

public static void main(String args[]){

MemoControl gui = new MemoControl();

gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.pack();
gui.setVisible(true);
gui.setTitle("My Memo");

}//main end

}//AMYMemo class end

最佳答案

尝试 label1.setIcon(image1); 而不是 EventClass 中的 label1 = new JLabel(image1);。因为您使用新的 Icon 创建了一个 JLabel 的新实例,它没有添加到您的 JFrame 中。

关于java - 翻转存储卡游戏的卡片在 java 中不起作用(没有小程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23497405/

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