【问题标题】:Change photo when you click a button单击按钮时更改照片
【发布时间】:2017-03-20 00:44:25
【问题描述】:
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 ...)

【问题讨论】:

  • pic.setIcon...?
  • 哈哈傻了我。谢谢

标签: java swing icons imageicon


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多