Autor
|
Tema: mostrar un string en un espacio pequeno (Leído 2,974 veces)
|
josco
Desconectado
Mensajes: 199
|
hola que tal aver si alguien me puede ayudar.
quiero mostrar un string que se valla recorriendo como si se lo comiera la pantalla, algo asi como los reproductores de celulares o cosas asi donde el nombre de la cancion no cabe en la pantalla entonces lo que hacen es ir comiendoce el principio del nombre y mostrando lo que viene.
|
|
|
En línea
|
|
|
|
Aeros
Desconectado
Mensajes: 199
|
hacer un vector de ese array y un vector mas chico que vas agregando el vector del string letra por letra hasta q se llene y cuando se llena se van cortando?
saludos
|
|
|
En línea
|
|
|
|
danielo-
Desconectado
Mensajes: 218
:)
|
Xq no pones el code que tienes hasta ahora? O almenos di si es sobre un frame y que metosdo usas para mostrarlo en pantalla, es decir, yo te recomendaría un drawString, meterlo en un ciclo e ir cambiando los parametros, sencillo, pero no especificas como lo estas trabajando :O
Saludos.
|
|
|
En línea
|
|
|
|
josco
Desconectado
Mensajes: 199
|
bueno estoy haciendo un reproductor, entonces el metodo que uso para dibujar el reproductor es este: public void paintAudio(Graphics g){ //int indice = 0;
// Si no se ha podido cargar el audio, mostramos el error if (error!=null && !error.equals("")){ g.setColor(0, 0, 0); // negro g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL)); g.drawString("Se ha producido un error: ", getWidth()/2, getHeight()/2, Graphics.TOP | Graphics.HCENTER); g.drawString(error, 0, (int) (getHeight() * .60), 0); this.removeCommand(salir); this.addCommand(atras); playingAudio = false; return; } g.setColor(0, 92, 255); g.fillRect(0, PlayPause.getY()-5, getWidth(), getHeight()-PlayPause.getY()); g.fillRect(0, 0,getWidth(), (int) (getHeight() * .2)+Font.SIZE_SMALL+5); PlayPause.paint(g); Atras.paint(g); Adelante.paint(g); long tiempo = 0; try { tiempo = playerThread.player.getMediaTime() / 1000000L /*Constantes.SECS_TO_MICROSECS*/; } catch (Exception e) { //e.printStackTrace(); } /// // Barra de progreso int tamano = (((int) (getWidth()-((getWidth()*.2)*2))-1)); long longitud = 0; if (duracion!=0){ longitud = tiempo * (tamano) / duracion; } g.setColor(0,112,0);//g.setColor(255,255,0);//amarillo g.drawRect ((int) (getWidth() * .2), (int) (getHeight() * .2), (int) (getWidth()-((getWidth()*.2)*2)),8 ); g.setColor(255,255,0);//amarillo//g.setColor(0,112,0);//verde g.fillRect ((int) (getWidth() * .2)+1,(int) (getHeight() * .2)+1 ,(int) longitud , 7); //fin barra progreso g.setColor(0, 0, 0); // negro g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL)); g.drawString(ficheroActual, (int) (getWidth() * .5), (int) (getHeight() * .1), Graphics.TOP | Graphics.HCENTER); g.drawString(long2time(tiempo), (int) (getWidth() *.1), (int) (getHeight() *.2)-Font.SIZE_SMALL/2, Graphics.TOP | Graphics.HCENTER); g.drawString(long2time(duracion), (int) (getWidth()*.8)+5, (int) (getHeight() * .2)-Font.SIZE_SMALL/2, 0); this.removeCommand(salir); this.addCommand(atras);
} en la parte g.drawString(ficheroActual, (int) (getWidth() * .5), (int) (getHeight() * .1), Graphics.TOP | Graphics.HCENTER); es donde muestro el nombre de la cancion, este metodo esta dentro de un metodo run que tiene un while: public void run() { Graphics g = getGraphics(); while (!stopped) { controles(); paintAudio(g) try { Thread.sleep(10); } catch (Exception e) { } }
}
|
|
|
En línea
|
|
|
|
sapito169
Desconectado
Mensajes: 629
|
tienes que usar trhreads lo unico que tienes que hacer es dentro del thread ponerle parte del texto a un jlabel hacer una pausa de medio segundo
|
|
|
En línea
|
|
|
|
|
|