Java摆动HTML drawString

我正在尝试创建一些用于特定目的的特殊组件,在该组件上我需要绘制HTML字符串,这是示例代码:

 public class MyComponent extends JComponent{

public MyComponent(){

super();

}

protected void paintComponent(Graphics g){

//some drawing operations...

g.drawString("<html><u>text to render</u></html>",10,10);

}

}

不幸的是,drawString方法似乎无法识别HTML格式,它愚蠢地按原样绘制字符串。

有什么办法可以使这项工作吗?

回答:

我找到了一种简洁的模拟方法paintHtmlString; 这是代码:

public class MyComponent extends JComponent {

private JLabel label = null;

public MyComponent() {

super();

}

private JLabel getLabel() {

if (label == null) {

label = new JLabel();

}

return label;

}

/**

* x and y stand for the upper left corner of the label

* and not for the baseline coordinates ...

*/

private void paintHtmlString(Graphics g, String html, int x, int y) {

g.translate(x, y);

getLabel().setText(html);

//the fontMetrics stringWidth and height can be replaced by

//getLabel().getPreferredSize() if needed

getLabel().paint(g);

g.translate(-x, -y);

}

protected void paintComponent(Graphics g) {

//some drawing operations...

paintHtmlString(g, "<html><u>some text</u></html>", 10, 10);

}

}

以上是 Java摆动HTML drawString 的全部内容, 来源链接: utcz.com/qa/401115.html

回到顶部