Código de Java - Mover JLabel por el form

Requerimientos

NetBeans 8.2

1.0

Publicado el 24 de Enero del 2019gráfica de visualizaciones de la versión: 1.0
5.932 visualizaciones desde el 24 de Enero del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Es la primera versión del código, se usará para crear un juego donde las unidades puedan ir de un punto a otro y regresar o si se mueven hacia nuevos puntos regresar ya sea por el mismo camino o establecer otro más corto.
No obstante aquí solo se ejemplifica el uso de las coordenadas. No puse código para el resto del juego pero si logro hacerlo y que funcione bien, lo publicaré.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/**
     * Clase para hacer que un JLabel se pueda mover por la pantalla.
     * Ya sea pasandole las coordenadas o agarrandolas cada vez que se hace click en la ventana o form.
     * Se deve ejecutar moverse_adelante o moverse_atras.
     * El nombre del class se debe a que estoy usando unos JLabel con imagenes de robots.
     * @author Rafael Angel Montero Fernández (Angel Continium).
     */
    public class Robot{
 
        /**
         * Constructor bacio.
         */
        public Robot(){
 
        }
 
        /**
         * Variables que iran guardando la informacion en formato de texto.
         */
        private String sX="", sY="";
 
        /**
         * Sirve para usarse en tiempo de ejecucion, cada vez que se agrega informacion, la variable String aumenta.
         * Y a su ves los vectores int tambien, sin la necesidad de copiar un vector en otro para luego aumentarle el tamaño al primero y luego vover a copiar a la inversa.
         * 
         * @param x Numero int para la coordenada x.
         * @param y Numero int para la coordenada y.
         */
        public void add(int x, int y){
 
            if(sX.equals("")==true){
                sX=jlRobot.getX() + "";
                sY="" + jlRobot.getY();
            }
 
            if (  sX.equalsIgnoreCase ("")==true){
                sX+=x +"";
                sY+=y+"";
            }
            else{
               sX+=" " + x;
                sY+=" " + y;
            }
            addCoordenadas_x(sX);
            addCoordenadas_y(sY);
        }
 
        /**
         * Permite agregar numeros en forma de matriz pero a mi modo, ejemplo: "1 2 3 4 5 6 7";
         * Y el codigo se encarga en darle el formato adecuado, todo esto para facilitar la programacion.
         * @param nuevas_coordenadas Debe pasarle numeros en formato String, ceparados por un espacio.
         */
        private void addCoordenadas_x(String nuevas_coordenadas) {
            String[] mCoordenadas = nuevas_coordenadas.split(" ");
            mCoordenadas_x = new int[mCoordenadas.length];
            int i=0;
            while (i <= mCoordenadas_x.length - 1) {
                mCoordenadas_x[i] = Integer.parseInt(mCoordenadas[i]);
                i++;
            }
        }
 
        /**
         * Permite agregar numeros en forma de matriz pero a mi modo, ejemplo: "1 2 3 4 5 6 7";
         * Y el codigo se encarga en darle el formato adecuado, todo esto para facilitar la programacion.
         * @param nuevas_coordenadas Debe pasarle numeros en formato String, ceparados por un espacio.
         */
        private void addCoordenadas_y(String nuevas_coordenadas) {
            String[] mCoordenadas = nuevas_coordenadas.split(" ");
            mCoordenadas_y = new int[mCoordenadas.length];
            int i=0;
            while (i <= mCoordenadas_y.length - 1) {
                mCoordenadas_y[i] = Integer.parseInt(mCoordenadas[i]);
                i++;
            }
        }
 
        /**
         * Borra toda la memoria de coordenadas o movimientos.
         */
        public void borrar_coordenadas(){
            this.sX="";
            this.sY="";
            this.mCoordenadas_x=new int[0];
            this.mCoordenadas_y=new int[0];
        }
 
        private int[] mCoordenadas_x;
        private int[] mCoordenadas_y;
 
        /**
         * Para facilitar las impreciones de textoe n la ventana inmediato.
         * @param datos 
         */
        private void msj(String datos){
            System.out.println(datos);
        }
 
        /**
         * Se mueve hacia adelante, de acuerdo a las coordenadas.
         */
        public void moverse_adelante(){
            Thread h=new Thread(){
                int i=0;
                public void run(){
                    try {
                        if(i<=mCoordenadas_x.length-1){
                            jlRobot.setBounds(mCoordenadas_x[i], mCoordenadas_y[i], 223, 226);
                            i++;
                            sleep(500);
                            run();
                        }
                    } catch (InterruptedException ex) {
//                        Logger.getLogger(FRM_RTS.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            };
              h.start();
        }
        /**
         * Hace el moviemeinto de regreso de acuerdo a las coordenadas.
         */
        public void moverse_atras(){
            Thread h=new Thread(){
                int i=mCoordenadas_x.length - 1;
                public void run(){
                    try {
                        if(i >= 0){
                            jlRobot.setBounds(mCoordenadas_x[i], mCoordenadas_y[i], 223, 226);
                            i--;
                            sleep(500);
                            run();
                        }
                    }catch (InterruptedException ex) {
//                        Logger.getLogger(FRM_RTS.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            };
            h.start();
        }
    } //Fin del class.



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5028