b***i 发帖数: 3043 | 1 把问题 再描述一遍
Swing/AWT的一个textPane,背景画图案,分两次画:先画一个bitmap,然后再画一个
。这样,后面那个如果有些点是透明的,就漏出了第一个bitmap的颜色,相当于后面可
以有玻璃的特性。那么后面画的那个bitmap是需要把特定的点变成透明色,这通过awt.
AlphaComposite来实现,画点,线,文字,填充都可以是透明的。后面这个bitmap画到
背景上的时候采用另外一种模式,透明的点则保留下面的颜色。
Javafx我发现无法实现这个把一个Canvas的某个线段变成透明的,或者把一个文字变成
透明的任务。只能把一个矩形区域变透明。变成其它颜色没有问题。比如,Canvas上画
一个蓝色矩形,然后里面画红色文字是正常的。
今天,加入两行程序
PixelWriter pw=gc.getPixelWriter();
pw.setColor(x0+10, y0+10, Color.RED);//把一个点变红色
结果,后面画红色文字,居然拥有了矩形的透明背景。就是说,蓝色矩形中间被扣去一
块,然后那里有红色的文字。同样,如果是填充扇形,则扇形外面有透明的矩形外围。
这是不是bug啊? | b***i 发帖数: 3043 | 2 没有问题的代码如下
gc.setFill(Color.BLUE);
gc.fillRect(x0, y0, 40, 40);
PixelWriter pw=gc.getPixelWriter();
//pw.setColor(x0+10, y0+10, Color.RED);
gc.setStroke(Color.RED);
gc.setLineWidth(5);
gc.translate(x0, y0);
gc.rotate(30);
gc.setFill(Color.RED);
gc.fillArc(20, 20, 15, 15, 0, 260, ArcType.ROUND);
gc.strokeLine(0, 0, 10, 10);
gc.rotate(-30);
gc.translate(-x0, -y0);
把注释的加入,则出现错误的结果。
awt.
【在 b***i 的大作中提到】 : 把问题 再描述一遍 : Swing/AWT的一个textPane,背景画图案,分两次画:先画一个bitmap,然后再画一个 : 。这样,后面那个如果有些点是透明的,就漏出了第一个bitmap的颜色,相当于后面可 : 以有玻璃的特性。那么后面画的那个bitmap是需要把特定的点变成透明色,这通过awt. : AlphaComposite来实现,画点,线,文字,填充都可以是透明的。后面这个bitmap画到 : 背景上的时候采用另外一种模式,透明的点则保留下面的颜色。 : Javafx我发现无法实现这个把一个Canvas的某个线段变成透明的,或者把一个文字变成 : 透明的任务。只能把一个矩形区域变透明。变成其它颜色没有问题。比如,Canvas上画 : 一个蓝色矩形,然后里面画红色文字是正常的。 : 今天,加入两行程序
| b*****t 发帖数: 1276 | | b******y 发帖数: 9224 | 4
感觉做B2B的project有用。面向consumer的应该不容易,毕竟windoze上排斥java
【在 b*****t 的大作中提到】 : 学这个有用吗?
|
|