Java 单击按钮时更改照片
我删除了不必要的代码。 如何在每次单击按钮时更改照片? 当我点击按钮时,iter变量递增。 但这不会改变照片。它只显示a1.jpgJava 单击按钮时更改照片,java,swing,icons,imageicon,Java,Swing,Icons,Imageicon,我删除了不必要的代码。 如何在每次单击按钮时更改照片? 当我点击按钮时,iter变量递增。 但这不会改变照片。它只显示a1.jpg 我希望发生的是,每次单击按钮,它都会显示下一张照片(a2.jpg、a3.jpg、a4.jpg…您永远不会调用ActionListener中JLabel上的pic.setIcon(…))。在Stage1构造函数中只调用一次,因此JLabel的图标永远不会改变。解决方案是在侦听器中调用此方法 您的问题是一种“神奇的思维”,认为如果您更改变量所引用的对象,那么对该对象的所
我希望发生的是,每次单击按钮,它都会显示下一张照片(a2.jpg、a3.jpg、a4.jpg…您永远不会调用ActionListener中JLabel上的
pic.setIcon(…)
)。在Stage1构造函数中只调用一次,因此JLabel的图标永远不会改变。解决方案是在侦听器中调用此方法
您的问题是一种“神奇的思维”,认为如果您更改变量所引用的对象,那么对该对象的所有其他引用也将更改,但Java不是这样工作的。当您更改ic所指的图标时,这对JLabel中显示的当前对象没有影响。您必须自己编写代码来更改它。您永远不会在ActionListener中的JLabel上调用
pic.setIcon(…)
。在Stage1构造函数中只调用一次,因此JLabel的图标永远不会改变。解决方案是在侦听器中调用此方法
您的问题是一种“神奇的思维”,认为如果您更改变量所引用的对象,那么对该对象的所有其他引用也将更改,但Java不是这样工作的。当您更改ic所指的图标时,这对JLabel中显示的当前对象没有影响。你必须自己编写代码来更改它。
pic.setIcon
…?哈哈,我真傻。谢谢你pic.setIcon
…?哈哈,我真傻。非常感谢。
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;
}