2010-11-07 2 views
6

J'affiche du contenu HTML dans un Swid JEditorPane. Pour changer l'apparence par défaut du HTML j'utilise une feuille de style CSS. Cela fonctionne très bien. Mon problème est seulement que JEditorPane ne supporte pas la spécification CSS complète. Y a-t-il une liste de fonctionnalités CSS supportées par JEditorPane?Swing JEditorPane Capacités CSS

+0

Que dit la documentation de classe CSS? – camickr

+1

Bonne nouvelle! 'javax.swing.text.html.StyleSheet' dit" Les futures versions de cette classe fourniront un meilleur support CSS. " – trashgod

+1

@trashgod: Je parie que ce commentaire est là depuis 2002 :) –

Répondre

5

Java a eu un dossier relativement pauvre en ce qui concerne le support HTML/CSS. Le commentaire dans les documents mis en évidence par trashgod ont été des améliorations prometteuses depuis des années. Autour de l'époque de la sortie de JavaFX, on parlait d'un JWebPane officiel qui permettrait aux développeurs Java d'accéder au moteur webkit, comme dans Safari et Chrome. Cependant, cela ne s'est jamais matérialisé.

Le seul conseil que je peux vous offrir est de regarder des rendus HTML/CSS alternatifs pour Java. Un que je recommande souvent est le projet xhtmlrenderer. Le développement a ralenti car il maintient généralement la version existante avec le bugfix occasionnel. Il cible CSS2.1, ce qui est souvent plus que suffisant; mais peut-être que ça passera en CSS quand la norme sera finalisée.

0

JEditorPane est très limité. Il vaut mieux intégrer un navigateur web natif si vous voulez un affichage HTML correct.

Vérifiez des projets tels que DJ projet Swing natif: http://djproject.sourceforge.net/ns

4

En regardant le code source de CSS.java freom JDK OpenJava, je trouve ceci:

définit un ensemble d'attributs CSS comme une énumération de typesafe. Les implémentations HTML View utilisent des attributs CSS pour déterminer comment ils vont afficher. Cela définit également des méthodes pour mapper entre CSS/HTML/StyleConstants. Toutes les propriétés abrégées, telles que la police, sont mappées aux propriétés intrinsèques.

Ce qui suit décrit les propriétés CSS qui sont suppored par le moteur de rendu:

  • font-family
  • police de style
  • -taille de la police (prend en charge les unités relatives) font-de poids
  • police
  • couleur
  • background-color (w vec l'exception du transparent)
  • background-image
  • background-repeat
  • position d'arrière-plan
  • fond
  • background-repeat
  • text-decoration (à l'exception de clignotement et overline)
  • vertical-align (seulement sup et super)
  • text-align (justifier est traité comme centre)
  • margin-top
  • marge droite
  • marge inférieure
  • marge gauche
  • marge
  • padding-top
  • padding-right
  • -bas rembourrage
  • padding-left Border-style (prend seulement en charge l'encart, le début et aucun)
  • liste-style-type
  • liste de style positions

Les éléments suivants sont modélisés, mais pas encore rendu.

  • font-variante
  • background-attachment (fond toujours traité comme défilement)
  • word-spacing
  • letter-spacing
  • text-indent
  • text-transform
  • ligne -height
  • border-top-width (ceci est utilisé pour indiquer si une bordure doit être utilisée)
  • border-right-width
  • -bas de largeur frontière
  • border-left-width
  • border-width
  • border-top
  • frontière droite
  • border-bas
  • bordure gauche
  • bordure
  • largeur
  • hauteur
  • flotteur
  • clair
  • affichage
  • white-space
  • liste de style