怎么运用java点击一下按钮,随机出现一个图片

Python019

怎么运用java点击一下按钮,随机出现一个图片,第1张

随机出现图片, 其实可以转换成一个随机数字的问题. 把图片存入一个数字, 那么只要随机的数字在图片数组的长度范围内即可. 稍微完善的地方就是要确保每次的下标,不要和上一次的相同,否则点击按钮就不会出现换图的效果了.

效果图

参考代码

import java.awt.*

import javax.swing.*

//java8测试通过

public class DemoFrame extends JFrame {

JButton jbChange

JLabel jlImg

static final ImageIcon IMG1 = new ImageIcon(

Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/1.jpg")))

static final ImageIcon IMG2 = new ImageIcon(

Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/2.jpg")))

static final ImageIcon IMG3 = new ImageIcon(

Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/3.jpg")))

static final ImageIcon IMG4 = new ImageIcon(

Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/4.jpg")))

static final ImageIcon[] IMGS = { IMG1, IMG2, IMG3, IMG4 }

int nowIndex//用于记录现在的下标

public DemoFrame() {

JPanel jps = new JPanel()

jbChange = new JButton("换图")

jps.add(jbChange)

add(jps, BorderLayout.SOUTH)

JPanel jpc = new JPanel()

jlImg = new JLabel()

nowIndex=getRandomIndex()

jlImg.setIcon(IMGS[nowIndex])

jpc.add(jlImg)

add(jpc)

setSize(272, 390)

setLocationRelativeTo(null)

setDefaultCloseOperation(EXIT_ON_CLOSE)

setTitle("随机换图")

//按钮点击事件

jbChange.addActionListener(e -> {

int temp=getRandomIndex()//随机产生一个下标

while(temp==nowIndex) {//如果这个下标和现在的下标一直,那么就换一个

temp=getRandomIndex()

}

nowIndex=temp//更新现在的下标

jlImg.setIcon(IMGS[nowIndex])//把JLabel的图片换掉

})

}

//产生随机下标

private int getRandomIndex() {

return (int) (Math.random()*IMGS.length)

}

public static void main(String[] args) {

EventQueue.invokeLater(() -> new DemoFrame().setVisible(true))

}

}

给个例子你参考一下:给按钮bntOk添加监听事件

bntOk.addMouseListener(new MouseAdapter()

  {

   public void mouseClicked(MouseEvent e1) {

label2= new JLabel()

    frame.add(label2)

    label2.setBounds(50, 50, 400, 200) 

    label2.setIcon(new ImageIcon("d:\\love.JPG"))   //可以换成任意你想要的图片

   }   

  })

点击按钮前,是这样的

点击显示按钮后,是这样的

完整的程序如下:

import java.awt.event.MouseAdapter

import java.awt.event.MouseEvent

import javax.swing.*

import java.awt.*

public class wuziqi extends JFrame{

 private JPanel frame

 private JButton bntOk

 private JLabel label2

 private ImageIcon asdIcon = new ImageIcon("d:\\love.JPG")//换成你要显示的图片

public static void main(String[] args){    

  wuziqi mb=new wuziqi()

  

 }

 public wuziqi(){                             //构造函数,搭建显示界面

  frame= new JPanel() 

  getContentPane().add(frame, BorderLayout.CENTER)

  frame.setLayout(null)

  frame.setBounds(100, 100, 576, 440)  

  this.setSize(500, 500) 

  this.setResizable(false)

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

  this.setTitle("点击按钮,显示图片")

  this.setVisible(true)

    

  bntOk = new JButton()

  frame.add(bntOk)

  bntOk.setText("显示")

  bntOk.setLocation(10, 10)

  bntOk.setBounds(150, 300, 66, 30)

  bntOk.addMouseListener(new MouseAdapter()     //给按钮加上监听事件

  {

   public void mouseClicked(MouseEvent e1) {

    

    label2= new JLabel()           

    frame.add(label2)

    label2.setBounds(50, 50, 400, 200) 

    label2.setIcon(asdIcon)                         //label内容为图片

   }   

  })          

 }

 }