PDA

View Full Version : JAVA: problema con messaggi


cn73
25-02-2004, 14:26
StringBuffer message = new StringBuffer("\nIl nome del file non deve contenere spazi, apici, doppi apici, o apostrofi.\n");
message.append("Inoltre non sono ammissibili i seguenti caratteri:\n");
message.append("\\ / : * ? " + '"' + " < > |");
JOptionPane.showMessageDialog(this, AllegatiConstants.getHtmlText(message.toString()),
"Attenzione", JOptionPane.ERROR_MESSAGE,icon);


getHtmlText() è un metodo che mi sostituisce gli a capo "/n" con dei <br>, perciò la stringa da
visualizzare risulterebbe:


<br>Il nome del file non deve contenere spazi, apici, doppi apici, o apostrofi.<br>
Inoltre non sono ammissibili i seguenti caratteri:<br>
\\ / : * ? " < > |)


Il risultato è nell'immagine allegata...praticamente sembra che la largezza della finestra sia
calcolata senza tenere conto degli a capo... Come potrei fare?

anx721
25-02-2004, 15:24
Ma perchè sosituire gli /n con <br>? Con gli /n funziona normalmente.

cn73
25-02-2004, 16:27
L'avevo fatto perchè avevo lo stess oproblema, e volevo verificare se mettendo i br si risolveva...

anx721
25-02-2004, 16:36
Con me funziona tranquillamente se metto gli /n (vedi allegato), l'unica differenza è che non ho usato uno StringBauffer, ma una String

cn73
26-02-2004, 10:38
Mi sono spiegato male... Anche a me funziona con del testo normale, il mio scopo è dare una formattazione HTML al messaggio... ti riporto il metodo getHtmlText() cui accennavo prima...



public final static String HTML_TAG_START = "<html><b><font size=+0 color=black> ";
public final static String HTML_TAG_END = " </font></b></html>";

....

public static String getHtmlText(String text){
StringBuffer sb = new StringBuffer();
StringTokenizer st = new StringTokenizer(text,"\n",false);
if (st.hasMoreTokens())
sb.append(st.nextToken());

while (st.hasMoreTokens()){
sb.append("<br>");
sb.append(st.nextToken());
}
//System.out.println("DEBUG!! " + sb.toString());
return HTML_TAG_START + sb.toString() + AllegatiConstants.HTML_TAG_END;
}

anx721
26-02-2004, 11:56
Con la mia versione di java (1.4.2) la fienstra di dialogo non è allungata otre il necessario (vedi allegato), prova a vedere se funziona meglio se invece di aggiugere una stringa come message, aggiungi una JLabel formattata con l'html, cioè, invece di:


JOptionPane.showMessageDialog(this, AllegatiConstants.getHtmlText(message.toString()), "Attenzione", JOptionPane.ERROR_MESSAGE,icon);


prova con:


JOptionPane.showMessageDialog(this, new JLabel(AllegatiConstants.getHtmlText(message.toString())), "Attenzione", JOptionPane.ERROR_MESSAGE,icon);

anx721
26-02-2004, 11:58
alllegato

cn73
26-02-2004, 14:10
Niente...stesso risultato :(

PGI
08-03-2004, 16:14
questo l'ho recuperato direttamente dal fondo del forum :eek:

cn, sento che stai usando Linux.

Il codice che hai postato è corretto. E' corretto anche quello di anx721 (non che dubitassi di uno dei due, è solo che sono proprio andato a scartabellare le pagine di Sun sull'uso di HTML nei componenti Swing).

10 a 1 che è un problema dell'AWT sotto Linux (ma non ho trovato bug segnalati sull'argomento).

cn73
08-03-2004, 17:23
Compilo sotto UNIX ma eseguo sotto Windows... Secondo me è un problema della 1.1.8 ...

PGI
08-03-2004, 18:10
Originariamente inviato da cn73
1.1.8 ...

Oh la madonna, chi è che t'ha incatenato ad una versione così vecchia! Usi per caso VisualAge 4 Java (o un nome così) ?

cn73
08-03-2004, 19:26
No, questo applicativo è nato con questa versione, e la riconfigurazione dei client ma soprattutto dei server è troppo onerosa a detta della ditta. E io devo fare i miracoli :D