Dalam Swing, kaedah drawString biasanya digunakan untuk memaparkan teks pada komponen. Walau bagaimanapun, ia mungkin gagal apabila cuba membuat penanda HTML. Mari kita selidiki penyelesaian untuk mengatasi had ini.
Seperti yang digambarkan dalam kod sampel yang disediakan, drawString menganggap teg HTML sebagai teks biasa. Tingkah laku ini boleh mengecewakan apabila anda perlu memformat teks menggunakan elemen HTML.
Daripada bergantung semata-mata pada drawString, pertimbangkan untuk menggunakan pendekatan renderer flyweight:
Dengan menggunakan teknik ini, anda boleh menentukan teg HTML dalam JLabel anda dan mengawal lokasi dan gaya pemaparannya.
Coretan kod di bawah menunjukkan pelaksanaan ringkas pemapar flyweight:
import javax.swing.*; import javax.swing.plaf.ComponentUI; import java.awt.*; public class FlyweightRenderer { private JLabel renderer = new JLabel("<b>Hello World</b>"); private CellRendererPane crp = new CellRendererPane(); private Component parent; public FlyweightRenderer(Component parent) { this.parent = parent; } public void render(Graphics g, int x, int y) { crp.paintComponent(g, renderer, parent, x, y, renderer.getPreferredSize().width, renderer.getPreferredSize().height); } }
Dalam kaedah paintComponent komponen tersuai anda, anda boleh menggunakan pemapar flyweight untuk melukis teks berformat HTML:
@Override protected void paintComponent(Graphics g) { super.paintComponent(g); flyweightRenderer.render(g, 10, 10); }
Pendekatan pemapar flyweight ini membolehkan anda untuk memaparkan teks berformat HTML dalam komponen Swing. Dengan memanipulasi lokasi pemaparan dan gaya JLabel, anda boleh mencapai kesan visual yang diingini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Penanda HTML Menggunakan Kaedah `drawString` Swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!