El día de hoy al despertar aún con sueño y con la boca con un sabor a alcohol, entrando a Google+, encontré una duda sobre como mostrar imagenes aleatorias en java al presionar un botón (JButton) y mostrarlo en un JLabel, y me dí a la tarea para ir despertando un poco de picar un poco de código y aquí se los dejo, quizá al chavo que pregunto ya resolvió su problema pero podría servirle a alguien más.
Feliz sábado y feliz cruda!!!!
[java]
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class imgRandom extends JFrame implements ActionListener{
private JLabel label2; //declaramos nuestro JLabel
JButton boton; //declaramos nuestro botón
String cads[]={"/img/duck.gif","/img/luigi.png","/img/mario.jpg"}; //nuestras imágenes
public imgRandom() throws IOException{
setLayout(null);
label2=new JLabel("press");
label2.setBounds(10,20,100,100);
add(label2);
boton=new JButton("Presioname!!");
boton.setBounds(150,250,200,100);
add(boton);
boton.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==boton){
int ra=(int) (Math.random()*3); //generamos número aleatorio
//indicamos que nuestra imagen está en local y mandamos la ruta
//previamente declarada
URL url=this.getClass().getResource(cads[ra]);
try {
Image img=ImageIO.read(url); //leemos la imagen
label2.setIcon(new ImageIcon(img)); //la asignamos al JLabel de Java
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public static void main(String ar[]) throws IOException{
imgRandom form=new imgRandom();
form.setBounds(0,0,500,400);
form.setVisible(true);
}
}
[/java]
«Por que la programación debe de ser como las recetas de cocina» [Richard Stallman]
Amigo gracias por tomarte el tiempo, no he terminado el codigo aun .. vengo empezando en esto de la progra.. pero esto me ha servido de muchoo te lo agradezco 😉
el problema esq me confunde un poco el acomodamiento porque tu creas todos los objetos y yo los tengo ya hechos en jframeform… Saludos
Hola David no te preocupes en si la parte importante o a tomar en cuenta es la línea:
String cads[]={«/img/duck.gif»,»/img/luigi.png»,»/img/mario.jpg»}; //nuestras imágenes
Que son las rutas de tus imágenes, y luego el método ActionPerformed:
public void actionPerformed(ActionEvent e){
if(e.getSource()==boton){
int ra=(int) (Math.random()*3); //generamos número aleatorio
//indicamos que nuestra imagen está en local y mandamos la ruta
//previamente declarada
URL url=this.getClass().getResource(cads[ra]);
try {
Image img=ImageIO.read(url); //leemos la imagen
label2.setIcon(new ImageIcon(img)); //la asignamos al JLabel de Java
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Que a grandes rasgos en el ig compruebas que se haya presionado el botón, y asignas al JLabel correspondiente, saludos 🙂
ta weno el codigo pero me podrias ayudar con un codigo…tengo ke aser un programa ke al presionar un boton en un JLabel me muestre una imagen la cual sera aleatoria d 3 imagenes k tienen ke estar en un arreglo muestre solo 1… alo ke no entiendo es como aser para ke salgan aleatorias…Graxiiaz de antemano..
hola!!!
Alguien me pueda ayudar en un problema.
la situación es que tengo un programa de memorando, todo corre bien excepto que cundo oprimo el botón de reiniciar si me voltea las carta pero no me las re acomoda. Alguien que me pueda guiar por
favor!!