Introducir reglas en un stylesheet

Hola, a ver si me puedes ayudar que estoy un poco perdido.
Estoy haciendo un visor de ficheros html y quiero que me muestre los ficheros según unas reglas (o propiedades o como se llame) que están en un fichero .css. Aquí te muestro una parte del código que tengo:
//creo el JTextPane donde se visualiza el texto
JTextPane jaec = new JTextPane();
jaec.setContentType("text/html");
//Le introduzco las reglas para que me lo muestre de una determinada forma
HTMLEditorKit htmlek=new HTMLEditorKit();
StyleSheet ss=new StyleSheet();
ss.addRule("body { background-color: #0000FF ; }");
ss.addRule("body { color: red}");
ss.addRule("#ln {color: #BBBBBB ;}"); //esta no funciona
htmlek.setStyleSheet(ss);
jaec.setEditorKit(htmlek);
jaec.setEditable(false);
El problema viene que las reglas que no empiezan con '#' me las reconoce y lo muestra bien, pero las que empiezan con '#' no las llega a reconocer o por lo menos no me lo muestra como quiero. ¿Sabes cómo puedo solucionar esto? ¿Esas reglas se introducen de otra forma?
GRACIAS por adelantado y perdona por el tiempo que te haga perder.

2 Respuestas

Respuesta
Épale, coye lamento no poder ayudarte pero la verdad yo nunca he trabajado con StyleSheet, sorry.
Suerte!
Respuesta
1
Yo lo que hago cuando en HTML no me sé el código de los colores en javascript le pongo el nombre del color
en vez de
</head><body bgcolor=#ffffff onload="Move();">
</head><body bgcolor=RED onload="Move();">
Lo limitado de esto es que no todos los colores funcionan y en código puede haber mucho más variedad, pero si quieres colores estándares usalo así.
Otra cosa que puedes hacer, tal vez no los muestra, porque el # lo toma como un carácter especial el Java, así que si lo toma como un carácter y no como un texto a mostrar anteponle una diagonal, de esta forma tal vez se puede arreglar el problema.
ss.addRule("body { background-color: \#0000FF ; }");
Gracias por haberte preocupado de mi pregunta, pero creo que no me explique bien. Lo que tengo que hacer es un editor de html y tengo que mostrar los ficheros con un estilo determinado, a partir de un StyleSheet (.css).
En este fichero parece que hay dos tipos de reglas:
- las que no empiezan por '#', por ejemplo: body { background-color: blue; }
Estas sí me las interpreta bien.
- y las que empiezan por '#', por ejemplo: #Header { color: red; }
Estas no me funcionan.
Pero me refiero al símbolo # del principio de la regla ('#'Header) no al de los colores.
¿Sabes si hay alguna diferencia entre estos dos tipos de reglas? ¿Para las que empiezan por # se utiliza otro método distinto a addRule?
Resumiendo, sabes alguna forma de relacionar ese fichero css, mediante HTMLEditorKit por ejemplo, al fichero html que quiero mostrar para que me lo muestre con un determinado estilo.
Gracias y perdona las molestias.
Ok, ya entendí la pregunta, y lo siento no se que otro tipo de regla, lo que he encontrado en la mayoría de los documentos es que en vez de ponerle el "#" le ponen un punto "." es decir:
private HTMLEditorKit edtKit;
private HTMLDocument edtDoc;
private StyleSheet css;
public void init() { // Create CSS:
css = new StyleSheet(); css.addRule("body {color: #666666}");
css.addRule(".text {color: #FF0000}");
css.addRule(".header1 {color: #00FF00}");
css.addRule(".header2 {color: #0000FF}"); // Init our
editor: edtKit = new HTMLEditorKit();
edtKit.setStyleSheet(css);
edtDoc = new HTMLDocument(css); // Init
JEditorPane: edtPane = new JEditorPane();
Pruébalo igual te sirve eso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas