elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Desplazamiento de JButton o JLabel
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Desplazamiento de JButton o JLabel  (Leído 15,954 veces)
c0der

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Desplazamiento de JButton o JLabel
« en: 19 Diciembre 2010, 17:40 pm »

Que tal usuarios del elhacker, bueno mi duda es la siguiente, que funcion de java permide el desplazamiendo atraves del cursor de un jbutton en la pantalla de un jframe. Les coloco una imagen de lo que pretendo hacer, lo cual seria desplazar un boton por la lineas punteadas que se ven en la imagen solamente dando click al cursor del raton sin soltarlo y moviendlo a la derecha e izquierda, pero que no salga de esas lineas punteadas:


Si alguien sabe como hacerlo, me ayudaria mucho si me podria proporcionar un ejemplo, saludos y gracias de antemano.


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Desplazamiento de JButton o JLabel
« Respuesta #1 en: 19 Diciembre 2010, 22:13 pm »

Hola que tal.

Mira aquí tienes un ejemplo de apoyo (que ya es mucho).

Código
  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.event.ActionEvent;
  4.  
  5. import java.awt.event.ActionListener;
  6. import javax.swing.JButton;
  7. import javax.swing.JComponent;
  8. import javax.swing.JFrame;
  9. import javax.swing.SwingUtilities;
  10. import javax.swing.Timer;
  11.  
  12. public class MovingButton extends JComponent implements ActionListener {
  13.  
  14.  
  15. private Timer timer;                        // para iniciar/detener las acciones
  16.    private int animationDuration = 2000;   // cada animación tomará 2 segundos
  17.    private long animStartTime;     // tiempo de inicio de cada animación
  18.    private int translateY = 0;                 // ubicación actual del boton en Y
  19.    private static final int MAX_Y = 100;
  20.    private JButton button = null;
  21.  
  22.    /**
  23. *
  24. */
  25. private static final long serialVersionUID = 1L;
  26.  
  27. public static void main(String args[]) {
  28.        Runnable doCreateAndShowGUI = new Runnable() {
  29.            public void run() {
  30.                createAndShowGUI();
  31.            }
  32.        };
  33.        SwingUtilities.invokeLater(doCreateAndShowGUI);
  34.    }
  35.  
  36.    private static void createAndShowGUI() {
  37.        JFrame f = new JFrame("Moviendo un Boton");
  38.        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  39.        f.setSize(300, 300);
  40.        JComponent buttonContainer = new MovingButton();
  41.        f.add(buttonContainer);
  42.        f.setVisible(true);
  43.        f.setLocationRelativeTo(null);
  44.    }
  45.  
  46.    /**
  47.      * Pinta nuestro contenedor con un fondo de tablero de ajedrez.
  48.      * Se crea un objeto graphics, se llama a la superclase, que va
  49.      * a pintar a nuestro boton.
  50.      */
  51.    public void paint(Graphics g) {
  52.        g.setColor(Color.white);
  53.        g.fillRect(0, 0, getWidth(), getHeight());
  54.        // traslada nuestros graficos en funcion del valor de traslateY
  55.        g.translate(0, translateY);
  56.        super.paint(g);
  57.    }
  58.  
  59.  
  60.    /** crear una nueva instancia de TranslucentButton */
  61.    public MovingButton() {
  62.        setLayout(new java.awt.FlowLayout());
  63.        timer = new Timer(30, this);
  64.        button = new JButton("Iniciar");
  65.        button.setOpaque(false);
  66.        button.addActionListener(this);
  67.        add(button);
  68.    }
  69.  
  70.    /**
  71.      * Este metodo controla los clics que inician y detienen la animación
  72.      */
  73.    public void actionPerformed(ActionEvent ae) {
  74.        if (ae.getSource().equals(button)) {
  75.            // clic sobre el botón
  76.            if (!timer.isRunning()) {
  77.                animStartTime = System.nanoTime() / 1000000;
  78.                button.setText("Deterner");
  79.                timer.start();
  80.            } else {
  81.                timer.stop();
  82.                button.setText("Iniciar");
  83.                // coloca la traslación en 0
  84.                translateY = 0;
  85.                // Pinta de nuevo para obtener la posición final borrada
  86.                repaint();
  87.            }
  88.        } else {
  89.            // temporizador de eventos
  90.            // calcular la fracción transcurrida
  91.            long currentTime = System.nanoTime() / 1000000;
  92.            long totalTime = currentTime - animStartTime;
  93.            if (totalTime > animationDuration) {
  94.                animStartTime = currentTime;
  95.            }
  96.            float fraction = (float)totalTime / animationDuration;
  97.            fraction = Math.min(1.0f, fraction);
  98.            // este calculo se hace para pasar translateY de 0 MAX_Y
  99.            // la fraccion va de 0 a 1
  100.             if (fraction < .5f) {
  101.                translateY = (int)(MAX_Y * (2 * fraction));
  102.            } else {
  103.                translateY = (int)(MAX_Y * (2 * (1 - fraction)));
  104.            }
  105.            // pinta el boton en la nueva ubicación.
  106.            repaint();
  107.        }
  108.    }
  109. }
  110.  

Saludos.


« Última modificación: 20 Diciembre 2010, 20:07 pm por Darhius » En línea

abc
c0der

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Desplazamiento de JButton o JLabel
« Respuesta #2 en: 20 Diciembre 2010, 06:42 am »

No te vallas a ofender amigo agredesco mucho tu respuesta pero ese codigo lo hago en 2 patadas, creo que me falto aclarar que lo importante (que es lo que quiero) que el rapaint se haga cuando hago el movimiento del cursor se te agredece de todas maneras.
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Desplazamiento de JButton o JLabel
« Respuesta #3 en: 20 Diciembre 2010, 14:25 pm »

No te vallas a ofender amigo agredesco mucho tu respuesta pero ese codigo lo hago en 2 patadas, creo que me falto aclarar que lo importante (que es lo que quiero) que el rapaint se haga cuando hago el movimiento del cursor se te agredece de todas maneras.

No te vayas a ofender, PERO AQUI NO SE HACEN TAREAS!.

Como bien menciono, es un ejemplo. Solo te estaba mostrando las bases.
Si es como dices que lo  haces en 2 patadas(Ya quisiera verlo), solo tienes que cambiar el tipo de evento y alguna que otra cosa más.

Saludos.
En línea

abc
c0der

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Desplazamiento de JButton o JLabel
« Respuesta #4 en: 20 Diciembre 2010, 18:47 pm »

1.- No es tarea es conocimiento autodidacta
2.- Yo Reconozco cuando no se, pero lo que tu "HICISTE" jaja lo se hacer como lo dije en 2 patadas
3.- Si hubiera querido ese codigo que repito "HICISTE" jaja me hubiera dirigido a donde lo tomaste:

http://www.java2s.com/Code/Java/Advanced-Graphics/MovingButtonContainer.htm

colocandole en la sima
 
/*
*Autor: Soy un mediocre copio codigos de otras webs asi digo que no ando preguntando como hacer mis propias cosas y digo que los elabore xD Darhius
*/


y solo tradusco las strings
4.- Yo no dije postea un programa completo solo la funcion con la que se hace y ya las encontre por cierto en la misma pagina de donde EL AUTOR DARHIUS hizo su codigo jaja, solo tenias que poner el link de referencia y LISTO!!! jaja :

  public void mousePressed(MouseEvent e) {
    preX = rect.x - e.getX();
    preY = rect.y - e.getY();

    if (rect.contains(e.getX(), e.getY()))
      updateLocation(e);
    else {
      ShapeMover.label.setText("Drag it.");
      pressOut = true;
    }
  }

  public void mouseDragged(MouseEvent e) {
    if (!pressOut)
      updateLocation(e);
    else
      ShapeMover.label.setText("Drag it.");
  }

  public void mouseReleased(MouseEvent e) {
    if (rect.contains(e.getX(), e.getY()))
      updateLocation(e);
    else {
      ShapeMover.label.setText("Drag it.");
      pressOut = false;
    }
  }

UN SALUDO Y SIGUE ASI AMIGO COPIA CODIGOS Y DI QUE SON TUYOS LLEGARAS MUY LEJOS XDDDDDDD
« Última modificación: 20 Diciembre 2010, 18:52 pm por c0der » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Desplazamiento de JButton o JLabel
« Respuesta #5 en: 20 Diciembre 2010, 20:17 pm »

1. Me disculpo por colocarme como autor de ese código. Tengo muchos programas en mi pc que no recuerdo cuales hice y cuales tomé de alguna web.
2. Debiste colocar la duda que tenias sobre lo que tienes avanzado.
3. Coloca tú códito entre entiquetas de GeSHI
4. Definición de autodidacta: http://es.wikipedia.org/wiki/Autodidacta
5. Y ese código que has puesto ¿?, no entiendo. http://www.java2s.com/Code/Java/Event/MoveShapewithmouse.htm
6. Nunca dije que hubiera creado ese código  :¬¬
Entonces bien, creo qe intentas hacer algo como esto.
http://www.4shared.com/file/ylTrPMVJ/Tabla.html

Un saludo.
« Última modificación: 20 Diciembre 2010, 21:06 pm por Darhius » En línea

abc
c0der

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Desplazamiento de JButton o JLabel
« Respuesta #6 en: 20 Diciembre 2010, 20:56 pm »

Buena aplicacion para algo a de servir, pero no es lo que busco, ya encontre lo que buscaba y te lo mostre, creo que especifique claramente que lo avia bajado de la misma parte donde tu avias tomado el codigo xD pero bueno, hay personas lentas que se le va a hacer. un saludo y creo que este tema esta cerrado.
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Desplazamiento de JButton o JLabel
« Respuesta #7 en: 21 Diciembre 2010, 21:30 pm »

Buena aplicacion para algo a de servir, pero no es lo que busco, ya encontre lo que buscaba y te lo mostre, creo que especifique claramente que lo avia bajado de la misma parte donde tu avias tomado el codigo xD pero bueno, hay personas lentas que se le va a hacer. un saludo y creo que este tema esta cerrado.
Me parece como mínimo despectivo tu comentario, pues lo unico que ha hecho ha sido citar un codigo.
Ofensivo por insultar, aunque dirás que no lo has hecho a queriendas, que solo ha sido una forma de hablar y tal...
Y fatal porque has incumplido una norma, clara común en todo el foro:
NO SE HACEN TAREAS!

Además de demostrar tu vanidosidad despreciando ayudas y desconsiderandolas e infravalorando el esfuerzo (voluntario y altruista por cierto) que te ha ofrecido un compañero.

Quizás deberias enseñarnos tu a responder a tus propias preguntas inflingiendo las normas no?

A pesar de eso ha sido mas persona que tu y aún así ha querido ayudarte.

Saludos
« Última modificación: 21 Diciembre 2010, 21:32 pm por Debci » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Redimensionar JLabel
Java
Kerber0 5 13,044 Último mensaje 15 Mayo 2015, 21:32 pm
por JorddyRojas
superponer JLabel a JButton
Java
brian_e 4 13,776 Último mensaje 2 Abril 2009, 18:56 pm
por juancho77
Cómo animar JLabel?¿
Java
1mpuls0 4 11,698 Último mensaje 8 Octubre 2009, 03:36 am
por 1mpuls0
problema al mover JLabel en JFrame
Java
smasher666 9 25,806 Último mensaje 30 Octubre 2009, 03:43 am
por 1mpuls0
Poner un JLabel donde estaba un un JButton
Java
goditozor 2 3,872 Último mensaje 17 Mayo 2011, 04:33 am
por 1mpuls0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines