gpt4 book ai didi

java - 图片数量不变

转载 作者:行者123 更新时间:2023-12-01 11:37:56 26 4
gpt4 key购买 nike

该代码用于创建一个显示图片的应用程序,如果您的答案正确,您应该会看到下一张图片,但图片计数不会增加。所有变量都在主类之后声明,我创建了一个 Actionlistener 来检查 awnser 是否正确。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main {
public static void main(String[] args) {new Main().test();}

public int pictureCount = 1;
JFrame frame = new JFrame();
JButton button1 = new JButton("Submit");
JTextField text = new JTextField();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
JLabel label = new JLabel(new ImageIcon("C:\\Users\\Admin\\Desktop\\practicum 3\\" + pictureCount + ".jpg"));

void test(){

button1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)
{
if(text.getText().equals("5")){
pictureCount++;
new Main().test();
}
}
});

panel1.add(button1);
panel2.add(text);
panel3.add(label);

text.setPreferredSize(new Dimension(100,50));
panel1.setPreferredSize(new Dimension(1000, 200));
panel2.setPreferredSize(new Dimension(1000, 100));
panel3.setPreferredSize(new Dimension(1000, 450));

frame.getContentPane().add(BorderLayout.SOUTH, panel1);
frame.getContentPane().add(BorderLayout.CENTER, panel2);
frame.getContentPane().add(BorderLayout.NORTH, panel3);

frame.setSize(1000,750);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Operation Screen");
frame.setLocationRelativeTo(null);
}

}

最佳答案

您需要将所有图片作为 ImageIcons 读入数组或 ArrayList(例如称为 imageIconArray),然后在启动时在 JLabel 中显示 imageIconArray[0]。

按下按钮时,增加 pictureCount,然后通过其 setIcon(...) 方法重置 JLabel 的图标:

// in the ActionListener code:
pictureCount++;
label.setIcon(imageIconArray[pictureCount];

无论你做什么,都不要创建新的 Main 对象,不管其他人可能怎么说。当您所需要做的只是交换显示的图像时,为什么要创建新的 GUI?

关于java - 图片数量不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808054/

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