
Desgraciadamente, soy una persona MAL educada. [?]
Añademe a tus favoritos!
Contacto
Post al azar
RSS
BUSCAR
Mapa de la web
el 2006-06-22 12:06:59 - Secciones: - Enlace permanente: 684Los paneles de texto de Java parecen carecer de un método para añadir lineas de texto sueltas. Por ello, os propongo este pequeño truco para añadir texto a un JTextPane: leer el contenido previamente e incluirlo en la expresión.
JTextPane tp;
...
tp.setText("Esta linea se añadirá por delante del texto.\n"+tp.getText());
Observad el uso de caracteres escapados, en este caso un salto de linea, y la clave del ejemplo, el empleo del método .getText() del propio JTextPane para leer el contenido y volver a volcarlo junto con el nuevo texto.
el 2006-06-22 12:07:57 - Secciones: - Enlace permanente: 685Buscar cadenas en un panel de texto de Java es tan sencillo como aprovechar el método indexOf de las cadenas, para lo cual tenemos que convertir primero el JTextPane en una cadena con .getText():
JTextPane tp;
...
if (tp.getText().indexOf(cadena)>-1)
{
// Hacer algo si la cadena está en el panel de texto
}
ACTUALIZACION 20060905: Una corrección, y un ejemplo, a ver si así se ve mejor.
class cadenas {
public static void main(String[] args)
{
String path = new String("Hola que tal");
System.out.println("Hola = " + path.indexOf("Hola")); // Hola = 0
System.out.println("ola = " + path.indexOf("ola")); // ola = 1
System.out.println("Jola = " + path.indexOf("Jola")); // Jola = -1
}
}
el 2006-10-25 02:57:15 - Secciones: - Enlace permanente: 714A veces, necesitamos que la salida de nuestro programa modo texto se muestre siempre en la misma linea, y que solo avance cuando se llegue a un determinado punto de ejecución, a lo pkzip.
Esto es fácil de lograr usando los comandos de consola, en este caso, el de volver al inicio de linea sin avanzar.
for (int i=0; i<10; i++)
el 2007-03-05 04:19:46 - Secciones: - Enlace permanente: 751Leer los datos contenidos en un fichero de la Web en Java es bastante fácil. Simplemente, crea un objeto URL (recuerda importar java.io.* para tenerlo disponible para tu código) y envialo como entrada al típico InputStreamReader.
¡Una cosa a tener en cuenta es que no parece soportar autentificación HTTP!
import java.net.*;
el 2007-05-31 03:31:21 - Secciones: - Enlace permanente: 765El siguiente código os dirá si un fichero dado existe en el sistema.
import java.io.*;
el 2007-06-11 02:25:34 - Secciones: - Enlace permanente: 769Obtener el ancho y alto de la pantalla en Java es bastante fácil, solo tenemos que acceder al toolkit que estemos usando en nuestro programa, es decir, a la libreria que se encarga de dibujar los botones, ventanas y demás en la pantalla.
...
int ancho = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
int alto = java.awt.Toolkit.getDefaultToolkit().getScreenSize().height;
...
el 2007-06-11 03:16:37 - Secciones: - Enlace permanente: 770Añadir lineas a un fichero de texto es tan sencillo como el código que os presento a continuación:
try
{
BufferedWriter out = new BufferedWriter(new FileWriter("fichero", true));
out.write("linea de texto");
out.close();
} catch (IOException e)
{
}
el 2007-07-03 03:16:44 - Secciones: - Enlace permanente: 778En Java, existen tres formas principales para ejecutar tareas en segundo plano: heredar la clase Thread, implementar la interfaz Runnable y la clase TimerTask.
Este primer ejemplo muestra como usar la herencia de la clase Thread. Copiad al portapapeles, pegad en vuestro editor, y comprobar lo sencillo que es crear hilos de ejecucion alternativos al principal de vuestro programa. Observad como se ejecutan concurrentemente de manera que sus salidas se mezclan en pantallas, probablemente será más evidente conforme mayor sea el bucle de ejecución.
public class ThreadEjemplo extends Thread
el 2007-07-05 02:33:01 - Secciones: - Enlace permanente: 781En Java, existen tres formas principales para ejecutar tareas en segundo plano: heredar la clase Thread, implementar la interfaz Runnable y la clase TimerTask.
En este segundo ejemplo os muestro la segunda variante, que es la implementación de la interfaz Runnable, que es practicamente igual que heredar de Thread. ¿Que sentido tiene, entonces? Pues muy sencillo, en Java solo se puede heredar de una clase, así que si nuestra tarea hereda de alguna otra, tendriamos que descartar el método de la clase Thread. Pero podemos, además de heredar, implementar una interfaz, y ahí entra Runnable.
El código es muy sencillo, y muy similar al ejemplo de Thread. Observad que usamos implement y no extends en la llamada de la clase.
public class ThreadSample implements Runnable
el 2007-08-23 12:13:41 - Secciones: - Enlace permanente: 788Con el siguiente código podremos controlar la prioridad con que corren los hilos, o threads, de nuestros programas Java.
Thread me = Thread.currentThread();
me.setPriority(Thread.MIN_PRIORITY);
Para el ejemplo hemos usado la prioridad minima, es decir, que cualquier otro proceso tenga preferencia en la cpu antes que nuestro hilo. Para ver otros niveles de prioridad, consulta el objeto Thread con un inspector de objetos, o usa un entorno de programacion que muestre los metodos disponibles conforme se escribe, como Eclipse.
Pero hay un problema, la maquina virtual de Java tiene 10 niveles de prioridad que no tienen porqué coincidir con los del sistema operativo sobre el que está corriendo. Por ejemplo, Windows NT tiene siete, y no es nada raro que un sistema Unix tenga cientos. Por ello, lo mejor es utilizar solo MAX_PRIORITY, NORM_PRIORITY y MIN_PRIORITY en su codigo.
el 2007-10-20 06:37:48 - Secciones: - Enlace permanente: 795Con el siguiente código podreis conocer la jerarquia de llamada de vuestro código en tiempo de ejecución, con la única limitación de que solo funciona a partir de Java 5:
public class Llamadas
{
static public void fin()
{
StackTraceElement trace[] = Thread.currentThread().getStackTrace();
for (StackTraceElement St : trace)
{
System.out.println(St);
}
}
static public void salto()
{
fin();
}
public static void main(String[] args)
{
salto();
}
}
Deberia devolver algo como...
java.lang.Thread.getStackTrace(Unknown Source)
pruebas.Llamadas.fin(Llamadas.java:7)
pruebas.Llamadas.salto(Llamadas.java:16)
pruebas.Llamadas.main(Llamadas.java:21)
El programa es extremadamente sencillo: la clase principal llama al método salto, que a su vez llama al método fin, que es el que contiene la llamada a getStackTrace, que es ni más ni menos que la pila de llamadas de subrutina.
el 2007-11-10 12:15:29 - Secciones: - Enlace permanente: 797Conocer la cantidad de memoria libre en un programa Java es realmente sencillo:
public class Memoria
{
public static void main(String[] args)
{
System.out.println("Total: "+Runtime.getRuntime().totalMemory());
System.out.println("Libre: "+Runtime.getRuntime().freeMemory());
}
}
el 2007-11-10 12:27:37 - Secciones: - Enlace permanente: 798Si tu programa en Java se queda sin memoria suficiente, tiene lugar el siguiente error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Se puede deber a dos motivos:
* Que tu aplicación en Java tenga una perdida de memoria. Toca buscar el problema en el código, en breve os haré un post comentando el profiler que suelo usar, que me parece genial aunque a 400€ por licencia no creo que esté al alcance de todo el mundo.
* Que tu programa realmente necesite un montón de memoria. En este caso, la memoria disponible la puedes incrementar llamando a la maquina virtual con estos parametros:
java -Xms<tamaño de inicio de la memoria> -Xmx<tamaño máximo>
Por defecto tenemos:
java -Xms32m -Xmx128m
Estos parametros se pueden pasar en diferentes puntos dependiendo del entorno que utilicemos para programar.
Saiyine recommends the easiest way to earn money with your web: get paid just by having some links! Click this button to check it out.
