gpt4 book ai didi

java - Java 中的随机图像

转载 作者:行者123 更新时间:2023-12-01 09:17:23 27 4
gpt4 key购买 nike

如何让我单击按钮时出现随机图像?我需要添加什么才能查看,以便当我单击按钮时图像实际上会发生变化

ButtonListener:

public class ButtonListener implements ActionListener {

private Model mod;
public ButtonListener(Model _m){
mod = _m;
}

@Override
public void actionPerformed(ActionEvent e) {
int x = mod.random();
if (x == 1) {
JLabel L1 = new JLabel();
JLabel L2 = new JLabel();
JLabel L3 = new JLabel();
L1.setIcon(new ImageIcon ("Images/Green.png"));
System.out.println("1");
}
else if (x == 2) {
JLabel L1 = new JLabel();
L1.setIcon(new ImageIcon("Images/Purple.png"));
System.out.println("2");
}
else {
JLabel L1 = new JLabel();
L1.setIcon(new ImageIcon("Images/Red.png"));
System.out.println("3");
}
}
}

View :

public class View {

public View() {
Model _m = new Model();
JFrame f = new JFrame("....");
JPanel p = new JPanel(new GridLayout(2, 3));
JLabel L1 = new JLabel();
JLabel D = new JLabel();
JLabel L2 = new JLabel();
JLabel L3 = new JLabel();
JButton B = new JButton("Spin");

p.add(L2);
p.add(L3);
p.add(L1);
p.add(D);
p.add(B);
B.addActionListener(new ButtonListener(_m));
f.add(p);
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

模型:

public class Model {

public Model(){
}

public int random(){
Random rand = new Random();
return rand.nextInt(4);
}
}

最佳答案

您的代码似乎正在尝试创建类似 M-V-C 的程序,如果是这样,那么您的模型需要

  1. 状态(即一个或多个字段)
  2. 能够接受并通知监听器更改,以便当其“绑定(bind)”字段之一发生更改时,可以直接(例如, View 本身有一个向模型注册的监听器)或间接(例如, Controller 将监听器注册到模型中,然后当收到通知时( Controller )会更改 View )。

完成此操作后,我为模型提供了 SwingPropertyChangeSupport 字段以及允许其他类向此支持对象添加和删除 PropertyChangeListener 的方法。然后我的绑定(bind)字段(这里是代表随机 int 的字段)有一个 setter 方法,在这个方法中,我让我的支持对象通过调用它的一个 firePropertyChange(...) 方法。

例如,请查看我对类似问题的回答:Using a JFileChooser with Swing GUI classes and listeners

关于java - Java 中的随机图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445680/

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