Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: cardiobeta en 13 de Abril 2013, 00:54

Título: Pasar variable de tipo string desde java hasta html.
Publicado 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.
Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: César Krall en 13 de Abril 2013, 19:27
¿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?
Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: cardiobeta en 14 de Abril 2013, 15:50
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
Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: javi in the sky en 15 de Abril 2013, 12:47
¿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>");

Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: cardiobeta en 15 de Abril 2013, 20:19
No resulta a11.toString(). Aparece "a11.toString()".
Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: javi in the sky en 15 de Abril 2013, 21:42
He creado este código de prueba a partir del que tú pasaste:

Código: [Seleccionar]
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.

Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: cardiobeta en 15 de Abril 2013, 22:28
Gracias. Funcionó perfecto.
Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: javi in the sky en 16 de Abril 2013, 10:57
¿dónde tenías el fallo?
Título: Re:Pasar variable de tipo string desde java hasta html.
Publicado por: cardiobeta en 18 de Abril 2013, 03:18
La variable a11 debe escribirse "+a11+" . No es necesario convertirla a string porque ya lo es. Saludos y gracias.