1

我正在用户界面中绘制一个选项卡。我有我想要的大纲。如何填充该区域?

这是绘制选项卡边框的代码:

val g2 = g.asInstanceOf[Graphics2D]

g2.translate(x, y)
val q = new CubicCurve2D.Float
q.setCurve(0, h, 8, h, 6, 0, 16, 0)
g2.setColor(Color.RED)
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON)
g2.draw(q)
val end = w - 8
g2.drawLine(17, 0, end, 0)
q.setCurve(end, 0, end+10, 0, w, h, w + 8, h)
g2.draw(q)

这是它画的线(红色的):图片

我希望能够填充红线的内部。

4

1 回答 1

3

我不知道 Scala,但在 Java 2D 中,Graphics2D 对象可以填充或绘制任何Shape对象的轮廓。对于某些任意形状,您可以使用GeneralPath对象定义它,例如:

GeneralPath path = new GeneralPath();
path.lineTo(10, 10);
path.lineTo(0, 10);
path.lineTo(0, 0);
graphics.setColor(Color.RED);
graphics.fill(path);

GeneralPath 对象还具有绘制贝塞尔曲线和四边形的方法,因此您可以绘制路径,然后选择填充或绘制它的轮廓。

添加了指向GeneralPath的新链接

于 2010-09-07T10:57:40.177 回答