Foros del Web » Programación para mayores de 30 ;) » Java »

Evento en botones

Estas en el tema de Evento en botones en el foro de Java en Foros del Web. Hola, necesito que al pulsar un botón se vaya a una imagen, algo así como esto: ¿Como se puede hacer? Gracias...
  #1 (permalink)  
Antiguo 05/06/2003, 05:43
Avatar de chikatilo  
Fecha de Ingreso: noviembre-2002
Ubicación: Kiev
Mensajes: 113
Antigüedad: 21 años, 5 meses
Puntos: 0
Evento en botones

Hola, necesito que al pulsar un botón se vaya a una imagen, algo así como esto:



¿Como se puede hacer?

Gracias

Última edición por chikatilo; 05/06/2003 a las 11:03
  #2 (permalink)  
Antiguo 05/06/2003, 10:24
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola chikatilo!!!

No acabo de enterarme de cual es el objetivo. Si no he entendido mal quieres mostrar una imagen y debajo varios botones, y al pinchar en los botones se va cambiando la imagen. ¿Es eso lo que quieres?

Ya contaras

Un saludo,
kripton
__________________
Hoy por ti, mañana por mi. Compartiendo entre amigos.

Usuario Registrado Linux #327495
  #3 (permalink)  
Antiguo 05/06/2003, 11:06
Avatar de chikatilo  
Fecha de Ingreso: noviembre-2002
Ubicación: Kiev
Mensajes: 113
Antigüedad: 21 años, 5 meses
Puntos: 0
Cita:
Mensaje Original por kripton
Hola chikatilo!!!

No acabo de enterarme de cual es el objetivo. Si no he entendido mal quieres mostrar una imagen y debajo varios botones, y al pinchar en los botones se va cambiando la imagen. ¿Es eso lo que quieres?

Ya contaras

Un saludo,
kripton
Exacto, la imagen que se ve es por ejemplo la primera, pues pulsando los botones, ir a la siguiente, la ultima, etc.

Parece ser que hay un problema con el enlace, a ver si se ve aquí http://www.iespana.es/xffm/I/muestra.gif
  #4 (permalink)  
Antiguo 07/06/2003, 03:05
Avatar de chikatilo  
Fecha de Ingreso: noviembre-2002
Ubicación: Kiev
Mensajes: 113
Antigüedad: 21 años, 5 meses
Puntos: 0
Tan dificil es?
  #5 (permalink)  
Antiguo 07/06/2003, 03:40
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Yo diría que eso se hace con Javascript
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #6 (permalink)  
Antiguo 07/06/2003, 03:44
Avatar de chikatilo  
Fecha de Ingreso: noviembre-2002
Ubicación: Kiev
Mensajes: 113
Antigüedad: 21 años, 5 meses
Puntos: 0
Cita:
Mensaje Original por ferny
Yo diría que eso se hace con Javascript
Con javascript es mucho mas facil, pero es un ejercicio y en el tema no dice como hacerlo y mis dotes adivinatorias no las tengo muy desarrolladas.

Por cierto estoy de acuerdo contigo, sin los applets para que sirve esto?
  #7 (permalink)  
Antiguo 07/06/2003, 08:16
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola chikatilo!!!

Ahi va algo de código que puede ayudarte.

Código PHP:
import javax.swing.*;
import java.applet.Applet;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Vector;
import java.net.URL;


public class 
Pruebas extends Applet {
    private 
JLabel etiquetaImagen;
    private 
JButton botonAtras;
    private 
JButton botonSiguiente;
    private 
Vector vector = new Vector();
    private 
int posicion 0;


    public 
void init() {
        
super.init();
        
llenarVector();
        
etiquetaImagen = new JLabel(new ImageIcon(getClass().getResource("/imagen1.GIF")));
        
this.add(etiquetaImagen);
        
botonAtras = new JButton("<<");
        
this.add(botonAtras);
        
botonSiguiente = new JButton(">>");
        
this.add(botonSiguiente);
        
botonAtras.addActionListener(new ActionListener() {
            public 
void actionPerformed(ActionEvent e) {
                
botonAtras_actionPerformed();
            }
        });
        
botonSiguiente.addActionListener(new ActionListener() {
            public 
void actionPerformed(ActionEvent e) {
                
botonSiguiente_actionPerformed();
            }
        });
    }

    private 
void botonAtras_actionPerformed() {
        if (
posicion 0) {
            
posicion--;
            
etiquetaImagen.setIcon(new ImageIcon((URLvector.get(posicion)));
        }
    }

    private 
void botonSiguiente_actionPerformed() {
        if (
posicion vector.size() - 1) {
            
posicion++;           
            
etiquetaImagen.setIcon(new ImageIcon((URLvector.get(posicion)));
        }
    }

    private 
void llenarVector() {
        
vector.add(getClass().getResource("/imagen1.GIF"));
        
vector.add(getClass().getResource("/imagen2.GIF"));
        
vector.add(getClass().getResource("/imagen3.GIF"));
        
vector.add(getClass().getResource("/imagen4.GIF"));
    }


Cita:
Tan dificil es?
No es que sea dificil, pero tampoco es trivial y no siempre tenemos tiempo para dedicarnos en exclusia a contestar en los foros

Un saludete,
kripton
  #8 (permalink)  
Antiguo 07/06/2003, 11:08
Avatar de chikatilo  
Fecha de Ingreso: noviembre-2002
Ubicación: Kiev
Mensajes: 113
Antigüedad: 21 años, 5 meses
Puntos: 0
Cita:
Mensaje Original por kripton
No es que sea dificil, pero tampoco es trivial y no siempre tenemos tiempo para dedicarnos en exclusia a contestar en los foros
Es cierto, por eso mismo te agradezco que hayas contestado.

El codigo está bien en el compilador pero no funciona cuando abro la página html.

Mil gracias.
  #9 (permalink)  
Antiguo 07/06/2003, 15:12
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
A ver si esta vez que no he usado ningun elemento de swing (todo del awt) te funciona.

Código PHP:
import java.applet.Applet;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.util.Vector;


public class 
Pruebas extends Applet {
    private 
Button botonAtras;
    private 
Button botonSiguiente;
    private 
Vector vector = new Vector();
    private 
int posicion 0;


    public 
void init() {
        
super.init();
        
this.removeAll();
        
llenarVector();
        
botonAtras = new Button("<<");
        
this.add(botonAtras);
        
botonSiguiente = new Button(">>");
        
this.add(botonSiguiente);
        
botonAtras.addActionListener(new ActionListener() {
            public 
void actionPerformed(ActionEvent e) {
                
botonAtras_actionPerformed();
            }
        });
        
botonSiguiente.addActionListener(new ActionListener() {
            public 
void actionPerformed(ActionEvent e) {
                
botonSiguiente_actionPerformed();
            }
        });
        
this.getGraphics().drawImage((Image)vector.get(posicion),0,0,this);
    }

    private 
void botonAtras_actionPerformed() {
        if (
posicion 0) {
            
posicion--;
            
this.getGraphics().drawImage((Image)vector.get(posicion),0,0,this);
        }else{
            
this.getGraphics().drawImage((Image)vector.get(posicion),0,0,this);
        }
    }

    private 
void botonSiguiente_actionPerformed() {
        if (
posicion vector.size() - 1) {
            
posicion++;
            
this.getGraphics().drawImage((Image)vector.get(posicion),0,0,this);
        }else{
            
this.getGraphics().drawImage((Image)vector.get(posicion),0,0,this);
        }
    }

    private 
void llenarVector() {
        
//Buscamos las imagenes en el directorio raiz de ejecucion, en este caso el mismo que contiene el .class
        
vector.removeAllElements();
        
vector.add(getImage(getClass().getResource("/imagen1.GIF")));
        
vector.add(getImage(getClass().getResource("/imagen2.GIF")));
        
vector.add(getImage(getClass().getResource("/imagen3.GIF")));
        
vector.add(getImage(getClass().getResource("/imagen4.GIF")));
    }

    
//Machaco el metodo paint para asegurarme que se pinta bien la imagen
    
public void paint(Graphics g){
        
super.paint(g);
        if(
vector.size()>0){
            
g.drawImage((Image)vector.get(posicion),0,0,this);
        }
    }

Espero te sirva,
un saludo,
kripton

Última edición por kripton; 07/06/2003 a las 15:14
  #10 (permalink)  
Antiguo 07/06/2003, 16:04
Avatar de chikatilo  
Fecha de Ingreso: noviembre-2002
Ubicación: Kiev
Mensajes: 113
Antigüedad: 21 años, 5 meses
Puntos: 0
Este si funciona, gracias de nuevo kripton.



Que pasa que no se pueden ver directamente aquí las imagenes?
  #11 (permalink)  
Antiguo 12/06/2003, 11:56
Avatar de chikatilo  
Fecha de Ingreso: noviembre-2002
Ubicación: Kiev
Mensajes: 113
Antigüedad: 21 años, 5 meses
Puntos: 0
Algo un poco mas completo:

import java.awt.*;
import java.awt.event.*;

public class B2 extends java.applet.Applet implements ActionListener{

int contador=1;
String numImagenes;
String nombreimagen;
String extension;
Image foto;
//componentes
Button primero = new Button("|<");
Button ultimo = new Button(">|");
Button atras = new Button("<");
Button delante = new Button(">");

public void init(){
setBackground(Color.white);
setLayout(new FlowLayout());
add(primero);
add(atras);
add(delante);
add(ultimo);
primero.addActionListener(this);
atras.addActionListener(this);
delante.addActionListener(this);
ultimo.addActionListener(this);
//obtengo los parametros
nombreimagen=getParameter("imagenRaiz");//indica el nombre de la imagen, foto, imagen, dibujo...
numImagenes=getParameter("numero");//indica el numero de la imagen, 1,2,3...
extension=getParameter("imagenExtension");//Indica la extensión de la imagen, jpg, gif, etc

}

public void paint(Graphics g){
String aux = String.valueOf(contador);
foto=getImage(getDocumentBase(),nombreimagen + aux + extension);
g.drawImage(foto,0,0,this);//Suma todos los parametros
}

public void actionPerformed(ActionEvent event){
if (event.getSource()==primero)
contador=1;
else if (event.getSource()==ultimo)
contador=Integer.parseInt(numImagenes);
else if (event.getSource()==atras)
if (contador==1) contador=Integer.parseInt(numImagenes);
else contador-=1;
else
if (contador==Integer.parseInt(numImagenes)) contador=1;
else contador+=1;
repaint();
}
}

y para la página:

<html>
<body>
<applet code="B2" width=300 height=125>
<param name="imagenRaiz" value="imagen">
<param name="imagenExtension" value=".jpg">
<param name="numero" value="8">
</applet>
</body>
</html>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.