Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: cardiobeta en 13 de Abril 2013, 00:54
-
Hola a todos. Tengo un codigo java en el cual hay una variable de tipo string llamada a11, variable que por supuesto toma distintos valores concretos. Adicionalmente tengo un JEditorPane el cual se encuentra dentro de un Jform. El JEditorPane se lena con codigo HTML. El asunto es que no se como mostrar en el JEditorPane la variable a11. Espero haberme explicado. Graccias de antemano.
-
¿El código HTML con que se llena el JEditorPane desde donde sale? ¿Lo tomas de una base de datos, lo defines a mano, lo tienes en una variable ... ? ¿Puedes poner un ejemplo de cómo llenas el JEditorPane en código y dónde te interesaría que se mostrara la variable?
-
Tengo una variable a11 la cual es un string aportado por un resulset. Por supuesto, ese string puede ser cualquier texto. Ahora bien tengo un JEditorPane el cual lleno con un codigo html. En la primera linea va centrado esa variable. En concreto el codigo es este:
cargarencabezado();
try{
// Preparamos la ventana de ejemplo
JFrame v = new JFrame("Recipe");
v.setBounds(500, 300, 200, 400);
JButton boton1 = new JButton();
JEditorPane editor = new JEditorPane();
v.setUndecorated(false);
JScrollPane scroll = new JScrollPane(editor);
v.getContentPane().add(scroll);
v.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
// Marcamos el editor para que use HTML
editor.setContentType("text/html");
// Insertamos un texto
String xxa11 = a11;
editor.setText(
"<head><base href=\"file:d:/\"></head>"+
"<P><font size=\"24\"><b><CENTER>a11</CENTER></b><br>" + "<i>adios</i><br>" + <font color=\"red\">color rojo</font><br>" +
"<img src=\"viejo.gif\"></img>");
// Se visualiza la ventana
v.pack();
v.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
panel2.add(jButton2);
}
El JEditorPane es llamado con un jButton. La funcion cargarencabezado() produce la variable a11. Gracias
-
¿Escribiendo lo siguiente no te funciona:?
editor.setText(
"<head><base href=\"file:d:/\"></head>"+
"<P><font size=\"24\"><b><CENTER>"+a11.toString()+"</CENTER></b><br>" + "<i>adios</i><br>" + <font color=\"red\">color rojo</font><br>" +
"<img src=\"viejo.gif\"></img>");
Aparte parece que te faltaran comillas para que los cierres estén bien:
editor.setText(
"<head><base href=\"file:d:/\"></head>"+
"<P><font size=\"24\"><b><CENTER>a11</CENTER></b><br>" + "<i>adios</i><br>" + AQUÍ PARECE QUE FALTAN COMILLAS <font color=\"red\">color rojo</font><br>" +
"<img src=\"viejo.gif\"></img>");
-
No resulta a11.toString(). Aparece "a11.toString()".
-
He creado este código de prueba a partir del que tú pasaste:
import javax.swing.*;
public class probandoSetTextHtml{
public probandoSetTextHtml() {
try{
JFrame v = new JFrame("Recipe");
v.setBounds(500, 300, 200, 400);
JButton boton1 = new JButton();
JEditorPane editor = new JEditorPane();
v.setUndecorated(false);
JScrollPane scroll = new JScrollPane(editor);
v.getContentPane().add(scroll);
v.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
// Marcamos el editor para que use HTML
editor.setContentType("text/html");
// Insertamos un texto
String a11 = "Texto recuperado desde String";
editor.setText(
"<P><font size=\"24\"><b><CENTER>"+a11.toString()+"</CENTER></p>" + "<p><i>adios</i><br/></p>");
// Se visualiza la ventana
v.pack();
v.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Si lo ejecutas debería mostrarse correctamente, al menos yo lo veo correctamente y estoy insertando un string dentro del código html lo cual quiere decir que poderse se puede. El problema pienso que lo puedes tener por dos motivos:
- El código html lo tienes mal construido (te faltan etiquetas de apertura o cierre, cuestiones de sintaxis...)
- O bien no tienes la variable que quieres recuperar disponible. Por ejemplo si la variable está en otra clase no tiene visibilidad desde la clase en que tratas de utilizarla y no puedes recuperarla.
-
Gracias. Funcionó perfecto.
-
¿dónde tenías el fallo?
-
La variable a11 debe escribirse "+a11+" . No es necesario convertirla a string porque ya lo es. Saludos y gracias.