Ayunkan Isu HTML dengan drawString: Rendering Format HTML
Soalan:
Dalam percubaan untuk melukis teks HTML dalam komponen tersuai menggunakan kaedah drawString kelas Grafik, format HTML kekal tidak diiktiraf. Sebaliknya, rentetan itu dipaparkan tanpa sebarang rawatan khas.
Jawapan:
Walaupun kaedah drawString biasanya digunakan untuk melukis rentetan biasa, ia tidak menyokong pemformatan HTML secara semulajadi . Untuk memaparkan kandungan HTML dalam komponen Swing dengan berkesan, pendekatan alternatif disyorkan:
Menggunakan Komponen untuk Rendering HTML:
Penyelesaian pilihan melibatkan penciptaan komponen tersuai yang berfungsi tujuan khusus rendering HTML. Ini membolehkan kawalan yang lebih besar ke atas cara HTML ditafsirkan dan dipaparkan dalam komponen.
Sebagai contoh, coretan kod di bawah menggariskan pelaksanaan ringkas yang memaparkan teks HTML dalam JPanel menggunakan komponen pemapar:
import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.CellRendererPane; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class HtmlRenderer extends JPanel { private static final String HTML_STRING = "<html><b><i>Hello World!</i></b></html>"; private JLabel renderer = new JLabel(HTML_STRING); private CellRendererPane crp = new CellRendererPane(); private Dimension dim; public HtmlRenderer() { dim = renderer.getPreferredSize(); this.add(crp); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); renderer.setForeground(Color.BLUE); crp.paintComponent(g, renderer, this, 0, 0, dim.width, dim.height); } private void display() { JFrame frame = new JFrame("HTML Renderer"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(this); frame.pack(); frame.setSize(dim.width + 20, dim.height + 20); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { HtmlRenderer renderer = new HtmlRenderer(); renderer.display(); } }); } }
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Teks HTML menggunakan drawString dalam Swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!