elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:53  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  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 1,787 veces)
c0der

Desconectado Desconectado

Mensajes: 4



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

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
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


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

Hola que tal.

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

Código
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
 
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
 
public class MovingButton extends JComponent implements ActionListener {
 
 
private Timer timer;                        // para iniciar/detener las acciones
   private int animationDuration = 2000;   // cada animación tomará 2 segundos
   private long animStartTime;     // tiempo de inicio de cada animación
   private int translateY = 0;                 // ubicación actual del boton en Y
   private static final int MAX_Y = 100;
   private JButton button = null;
 
   /**
*
*/

private static final long serialVersionUID = 1L;
 
public static void main(String args[]) {
       Runnable doCreateAndShowGUI = new Runnable() {
           public void run() {
               createAndShowGUI();
           }
       };
       SwingUtilities.invokeLater(doCreateAndShowGUI);
   }
 
   private static void createAndShowGUI() {
       JFrame f = new JFrame("Moviendo un Boton");
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       f.setSize(300, 300);
       JComponent buttonContainer = new MovingButton();
       f.add(buttonContainer);
       f.setVisible(true);
       f.setLocationRelativeTo(null);
   }
 
   /**
    * Pinta nuestro contenedor con un fondo de tablero de ajedrez.
    * Se crea un objeto graphics, se llama a la superclase, que va
    * a pintar a nuestro boton.
    */

   public void paint(Graphics g) {
       g.setColor(Color.white);
       g.fillRect(0, 0, getWidth(), getHeight());
       // traslada nuestros graficos en funcion del valor de traslateY
       g.translate(0, translateY);
       super.paint(g);
   }
 
 
   /** crear una nueva instancia de TranslucentButton */
   public MovingButton() {
       setLayout(new java.awt.FlowLayout());
       timer = new Timer(30, this);
       button = new JButton("Iniciar");
       button.setOpaque(false);
       button.addActionListener(this);
       add(button);
   }
 
   /**
    * Este metodo controla los clics que inician y detienen la animación
    */

   public void actionPerformed(ActionEvent ae) {
       if (ae.getSource().equals(button)) {
           // clic sobre el botón
           if (!timer.isRunning()) {
               animStartTime = System.nanoTime() / 1000000;
               button.setText("Deterner");
               timer.start();
           } else {
               timer.stop();
               button.setText("Iniciar");
               // coloca la traslación en 0
               translateY = 0;
               // Pinta de nuevo para obtener la posición final borrada
               repaint();
           }
       } else {
           // temporizador de eventos
           // calcular la fracción transcurrida
           long currentTime = System.nanoTime() / 1000000;
           long totalTime = currentTime - animStartTime;
           if (totalTime > animationDuration) {
               animStartTime = currentTime;
           }
           float fraction = (float)totalTime / animationDuration;
           fraction = Math.min(1.0f, fraction);
           // este calculo se hace para pasar translateY de 0 MAX_Y
           // la fraccion va de 0 a 1
            if (fraction < .5f) {
               translateY = (int)(MAX_Y * (2 * fraction));
           } else {
               translateY = (int)(MAX_Y * (2 * (1 - fraction)));
           }
           // pinta el boton en la nueva ubicación.
           repaint();
       }
   }
}
 

Saludos.


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

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
c0der

Desconectado Desconectado

Mensajes: 4



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

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
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


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

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

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
c0der

Desconectado Desconectado

Mensajes: 4



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

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 por c0der » En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


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

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 por Darhius » En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
c0der

Desconectado Desconectado

Mensajes: 4



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

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
Moderador
***
Desconectado Desconectado

Mensajes: 1.945


Actualizate o muere!


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

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 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 3 4,974 Último mensaje 10 Marzo 2009, 00:26
por KaOs_NiGhT
superponer JLabel a JButton
Java
brian_e 4 3,526 Último mensaje 2 Abril 2009, 18:56
por juancho77
Cómo animar JLabel?¿
Java
Darhius 4 3,321 Último mensaje 8 Octubre 2009, 03:36
por Darhius
problema al mover JLabel en JFrame
Java
smasher666 9 5,762 Último mensaje 30 Octubre 2009, 03:43
por Darhius
Poner un JLabel donde estaba un un JButton
Java
goditozor 2 1,374 Último mensaje 17 Mayo 2011, 04:33
por Darhius
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines