ContentType ("text/html") ayarladığınızda, yalnızca JTextPane.setText() ile ayarlanmış olan metin için uygulanır. JTextPane'e stiller üzerinden gönderilen diğer tüm metinler, içerik türüne "bağışıklık kazandırır".setContentType ("text/html") beklendiği gibi çalışmaz
Geneldeprivate final String[] messages = {"first msg", "second msg <img src=\"file:src/test/2.png\"/> yeah", "<img src=\"file:src/test/2.png\"/> third msg"};
public TestGUI() throws BadLocationException {
JTextPane textPane = new JTextPane();
textPane.setEditable(false);
textPane.setContentType("text/html");
//Read all the messages
StringBuilder text = new StringBuilder();
for (String msg : messages) {
textext.append(msg).append("<br/>");
}
textPane.setText(text.toString());
//Add new message
StyledDocument styleDoc = textPane.getStyledDocument();
styleDoc.insertString(styleDoc.getLength(), messages[1], null);
JScrollPane scrollPane = new JScrollPane(textPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//add scrollPane to the main window and launch
//...
}
, ben JTextPane tarafından temsil edilmektedir sohbet: Burada
ne demek olduğunu. Sunucudan mesaj alıyorum, bunları işleyin - belirli durumlar için metin rengini ayarlayın, gülümseme işaretlerini resim yoluna vb. Değiştirin. Her şey HTML sınırları içinde yapılır. Açıkça Yukarıdaki örnekte de görülebileceği gibi, sadece setText eklenen yeni mesaj tarafından temsil edilmektedir setContentType ("text/html") ve ikinci bölümde, konu olan "metin/düz" (yanılmıyorsam eğer).
o JTextPane sokulduğu ve tüm verilere "text/html" içerik türünü uygulamak mümkün mü? Bu olmadan, çok karmaşık bir algoritmanın uygulanmasına gerek kalmadan mesajların işlenmesi neredeyse imkansızdır.
Ben gerçekten verimsiz geliştirici olduğumu hissediyorum (swing ve GUI programlama için yeni olduğumu teftiş). Bazen, Java Swing'in birçok iyi özellikten yoksun olduğunu ve bunların kendisinin uygulanması gerektiğini hissediyorum. Ancak tecrübelerim bunu yapmama izin vermiyor ve beni çok üzüyor. Değişkeniniz, Joop Eggen'den bile daha büyüktür - eğer daha isabetli ise, daha esnektir. – Dragon
Daha eksiksiz bir cevap, Kabul et. –
@JoopEggen, (Offtopic) Bunlar biraz farklı, ama ikisi de iyi. Ben tam bağlamda onları kontrol etmek gerekir - bu Şimdi ne yaptığım olduğunu :) – Dragon