我正在尝试使用swing来强调字符串中的一个作品。
我被建议使用带有以下代码的HTML:
Graphics2D g2 = (Graphics2D) g;
g.drawString("this is something I want people to <p color="#00FF00">NOTICE</p>", x, y);
我试过这个但没有运气......它只是输出HTML
有人能指出我正确的方向吗?
答案 0 :(得分:10)
如何编译:{{1}} as'“'是一个特殊字符,我们必须使用 \
您投放到Graphics2D但不使用它(与问题无关但可能导致异常)。
应该是:
g.drawString("this is something I want people to <p color="#00FF00">NOTICE</p>", x, y);
添加颜色只需在Graphics2D g2 = (Graphics2D) g;
g2.drawString("this is something I want people to <p color=\"#00FF00\">NOTICE</p>", x, y);
对象上调用setColor(Color c)
:
Graphic
但是,这会将整个String设置为绿色,如果您只想将部分绘制为绿色,请使用JLabel
获取HTML支持(最多为HTML3.2):
g2.setColor(Color.GREEN);
完整示例:
NB 正如您所看到的那样,因为段落标签而不是使用 font 标签来获取它单行如此:
JLabel label = new JLabel("<html>this is something I want people to <p color=\"#00FF00\">NOTICE</p></html>");
答案 1 :(得分:3)
如果你只是创建一个强调单词的简单标签,你可以直接将HTML直接分配到JLabel
上......
JLabel label = new JLabel("<html>this is something I want people to <p color='#00FF00'>NOTICE</p>");
只要在<html>
的字符串开头有JLabel
部分,它就会使用HTML渲染器绘制它。
正如@AndrewThompson指出的那样,<p>
会强制彩色文字到新的一行,所以也许<span>
会更合适......
JLabel label = new JLabel("<html>this is something I want people to <span style='color:#00FF00;'>NOTICE</span>");
答案 2 :(得分:3)
使用Graphics.setColor()更改您所做的任何事情的颜色。或者使用JLabel
设置颜色。
答案 3 :(得分:3)
对样式文字使用JLabel
。请参阅LabelRenderTest了解如何将其绘制到图像和图像中。用于油漆。
Graphics
/ AWT方法字符串暗示NOTICE
应为绿色,但其余为默认值(黑色)。我们需要用字符串的两个部分的颜色调用drawString(String)
两次,将后一个字符串偏移第一个字符串的宽度。要获得宽度,请参阅FontMetrics
或GlyphVector
等内容。 This answer使用GlyphVector
来获取字母大纲。
答案 4 :(得分:1)
你可以在g.drawString()之前使用g.setColor(Color.BLUE)。 (例如Color.BLUE)
答案 5 :(得分:-2)
你可以添加g.setColor(Color.Chosen Color);然后用g.drawString()写出字符串 也许