当前位置: 首页 > 面试题库 >

摆动HTML drawString

东方飞捷
2023-03-14
问题内容

我正在尝试创建一些用于特定目的的特殊组件,在该组件上我需要绘制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);
    }
}

感谢每个人的帮助,我非常感谢。



 类似资料:
  • 我在Swing和设置角色动画方面有一些问题,我有一个带有关键侦听器的JFrame,当用户点击时,它在这里调用我的JPanel方法 这个动画我的角色,但这么快,我们可以看到一个东西,我怎么才能看到动画?

  • 我有一段疯狂的代码。我如何用核心动画来制作动画,这样我的代码就少了很多?我已经找到了一些做“摆动”动画的代码,但那是3D的,我只想让视图左右移动,我不想让它在侧面反弹。

  • 问题内容: 如何知道被阻塞(不是视觉上而是通过检查线程本身)?有办法吗? 我正要去完成大学的最后一项毕业任务,该任务有很多图表,但是对Swing EDT(一般来说是Java)了解很少。 看一下这块: 如果我们执行一些修改块上gui组件的任务(包括调用另一个Thread),那已经是正确的方法了吗? 而且由于EDT是单线程环境,除了直接在GUI内部调用之外,还有其他(至少)一个阻止EDT的部分/示例。

  • 问题内容: 我正在尝试创建一些用于特定目的的特殊组件,在该组件上我需要绘制HTML字符串,这是示例代码: 不幸的是,drawString方法似乎无法识别HTML格式,它愚蠢地按原样绘制字符串。 有什么办法可以使这项工作吗? 问题答案: 我找到了一种简洁的模拟方法; 这是代码:

  • 嗯,这是一个非常新的提示。我声明要在window builder的帮助下自己编写GUI应用程序的代码,我已经决定停止使用netbeans,因为我在这里读到一些人说这很好。你可能认为我没有调查,但相信我,我做了功课。。。 我尝试了甲骨文所说的方式: > 公共类MyClass实现ActionListener{ someComponent。addActionListener(instanceOfMyCl

  • 问题内容: 我很难让超链接在JEditorPane中工作。有人可以告诉我我在做什么错吗?我希望能够单击链接和浏览器打开该页面。提前致谢。:D 问题答案: 哇,那虽然比我还简单:P 哦,等到用户单击链接之后再打开浏览器,在我杀了你之前,大约有4个窗口在运行;) 点击更新 你快到了;)