gpt4 book ai didi

java - 单击按钮时更改照片

转载 作者:行者123 更新时间:2023-12-02 02:57:09 25 4
gpt4 key购买 nike

import javax.swing.Icon;
import javax.swing.ImageIcon;


public class Stage1 extends javax.swing.JFrame {


int score = 0;
int iter = 1;


public Stage1() {
initComponents();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("Stage 1");
Icon ic = new ImageIcon("a"+ iter + ".jpg");
pic.setIcon(ic);


}


private void submitActionPerformed(java.awt.event.ActionEvent evt) {

if(answer.getText().equals("input"))
{
score++;
iter++;
answer.setText("");
String sc = Integer.toString(score);
jLabel1.setText(sc);
jLabel2.setText(Integer.toString(iter));
}
else
{
iter++;
Icon ic = new ImageIcon("a"+ iter +".jpg");
answer.setText("");
jLabel2.setText(Integer.toString(iter));
}


}


public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Stage1().setVisible(true);
}
});
}


private javax.swing.JTextField answer;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel pic;
private javax.swing.JButton submit;

}

我删除了不必要的代码。如何在每次单击按钮时更改照片?当我单击按钮时,iter 变量会递增。但这并没有改变照片。它只显示a1.jpg我想要发生的是,每次单击按钮时,它都会显示下一张照片(a2.jpg、a3.jpg、a4.jpg ...)

最佳答案

您永远不会在 ActionListener 中的 JLabel 上调用 pic.setIcon(...)。您只需在 Stage1 构造函数中调用它一次,因此 JLabel 的图标永远不会改变。解决方案是在监听器中调用此方法。

你的问题是一种“神奇思维”,认为如果你改变一个变量引用的对象,所有其他对该对象的引用也会改变,但这不是Java的工作方式。当您更改 ic 引用的图标时,这对 JLabel 中显示的当前对象没有影响。您必须自己编写代码来更改它。

关于java - 单击按钮时更改照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42894194/

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