|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
[JAVA] Problemi nell'utilizzo di JEditorPane
Ciao, oggi ho io un problemino, sto sviluppando una applicazione Java in cui dentro un JFrame ho un JTabbedPane. Ogni pagina del JTabbedPane contiene un JScrollPane che contiene un JEditorPane. Il JEditorPane deve visualizzare del codice HTML (che genero io da codice).
In sostanza ho un codice del tipo: Codice:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class Prova
{
public static void main (String[] args)
{
final String text =
"<html>" +
"<head>" +
"<style>" +
"h1 { font: bold 200% sans-serif; color: red; }" +
"table { border: 1px solid black; }" +
"</style>" +
"</head>" +
"<body>" +
"<h1>Prova</h1>" +
"<h2>Prova</h2>" +
"<h3>Prova</h3>" +
"<table width='100%' cellspacing='0' cellpadding='3'>" +
"<tr>" +
"<td>Prova</td>" +
"<td>Prova</td>" +
"</tr>" +
"<tr>" +
"<td>Prova</td>" +
"<td>Prova</td>" +
"</tr>" +
"</body>" +
"</html>";
SwingUtilities.invokeLater (new Runnable ()
{
public void run ()
{
JFrame frame = new JFrame ();
JTabbedPane tabbedPane = new JTabbedPane ();
JEditorPane editorPane = new JEditorPane ("text/html; charset=ISO-8859-1", text);
editorPane.setEditable (false);
JScrollPane scrollPane = new JScrollPane (editorPane,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
tabbedPane.addTab ("Prova", scrollPane);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.getContentPane ().add (tabbedPane, BorderLayout.CENTER);
frame.setSize (400, 350);
frame.setVisible (true);
}
});
}
}
In sostanza ho 2 problemi: (A) Se provate ad avviare questo esempio, noterete (spero) una specie di "flash" iniziale, ossia, il contenuto del frame viene visualizzato, poi sparisce per qualche frazione di secondo e poi ricompare. Non so se è un problema del mio PC. Comunque quale può essere il motivo?? Si può evitare? (B) La documentazione dice che il JEditorPane supporta codice HTML 3.2. Perfetto, tanto non devo fare cose strane e il contenuto, come ho detto, lo genero io. Ho visto che supporta anche degli stili CSS. Nell'esempio sopra lo stile applicato a 'h1' funziona perfettamente, mentre il border applicato alla table, non lo accetta. Quindi mi chiedo: quali stili accetta e quali no? Grazie.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ciao, ho provato il codice sul mio pc e non ho notato nessun flash iniziale!
Per i bordi prova ad usare qualcosa del genere: <table width="200" border="1" cellspacing="0"> Ultima modifica di MEMon : 18-10-2006 alle 12:24. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Anzi ho provato, per i bordi prova a fare così:
<table width="200" border="1" cellspacing="0"> però in questo modo non usi i CSS mi sa...quindi presumo che già lo sapevi Va beh |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Potrebbe dipendere dalla versione del JDK??? Io ho la 1.5.0_08-b03. Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
L'ho fatto partire varie volte e non ho notato flash!
Si infatti me lo immaginavo che già lo sapevi |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2003
Messaggi: 3852
|
Lo ho provato, il problema A non si presenta sul mio pc, per quanto riguarda il problema B non posso aiutarti in quanto mi sto avvicinando ora alla "grafica"..
__________________
Cerco fotocamera con buono zoom!! CLICCA! ° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) ° |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Per il "flash", prova ad usare l'accelerazione OpenGL anzichè quella DirectX, così vedi subito se è un problema della pipeline di rendering di Java2D.
java -Dsun.java2d.opengl=True Prova Potresti anche fare un "frame.pack()" prima del "frame.setSize" così attivi l'albero di visualizzazione quel nanosecondo prima che magari aiuta. "Magari" perchè anche il setVisible attiva l'albero di visualizzazione prima di proiettare la finestra ma, sai com'è, tecnologia fa rima con magia... |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
E' possibile che l'accelerazione OpenGL non sia attivabile. Qui trovi i requisiti
http://java.sun.com/j2se/1.5.0/docs/...tures.html#ogl Se togli l'accelerazione DirectX cosa succede? java -Dsun.java2d.noddraw=true Prova |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 19-10-2006 alle 16:48. |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Comunque non è un problema di codice, questo penso che tu lo sappia già. Quello che hai scritto non fa una piega. Direi quindi che è Java2D che non fa quello che dovrebbe o lo fa meno bene di quanto potrebbe. Forse è una questione di scheda video e driver?
Io ho una GEForce6800GS con driver 92.91 e Windows XP Home e un JRE Sun 1.5.0_08-b03. E non ho "flash". Andbin, Andrea16v e MEMon che avete? |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Comunque grazie x l'aiuto. Non è un problema questo "flash" ... volevo solo capire meglio.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
se vi può essere utile io ho una radeon 9700pro con win xp pro e sdk 1.5.0.8
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:37.



















