[英]error while converting java.awt.geom.Rectangle2D to javafx.geometry.Rectangle2D
[英]Fields of java.awt.geom.Rectangle2D?
这里不是 Java 人,我只是在Processing.org 中尝试此代码:
//import java.awt.Rectangle; // int only
import java.awt.geom.Rectangle2D;
Rectangle2D testr;
void setup() {
testr = new Rectangle2D.Float(1.0, 1.0, 30.0, 30.0);
println(testr);
//println(testr.x);
}
它打印出:
java.awt.geom.Rectangle2D$Float[x=1.0,y=1.0,w=30.0,h=30.0]
...哪种暗示可以访问x
和y
字段的位置? 甚至Rectangle2D.Float (Java Platform SE 7)说:
现场总结
...
浮动 x
此 Rectangle2D 的 X 坐标。
然而,如果我取消注释println(testr.x);
, 编译失败:
testr.x cannot be resolved or not a field.
我哪里出错了 - 为什么我不能访问文档明确指出存在的字段?
顺便说一句,当处理.pde
设法编译时,这是我在/tmp
找到的完整.java
源代码:
import processing.core.*;
import processing.data.*;
import processing.event.*;
import processing.opengl.*;
import java.awt.geom.Rectangle2D;
import java.util.HashMap;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class sketch_140204c extends PApplet {
//import java.awt.Rectangle; // int only
Rectangle2D testr;
public void setup() {
testr = new Rectangle2D.Float(1.0f, 1.0f, 30.0f, 30.0f);
println(testr);
}
static public void main(String[] passedArgs) {
String[] appletArgs = new String[] { "sketch_140204c" };
if (passedArgs != null) {
PApplet.main(concat(appletArgs, passedArgs));
} else {
PApplet.main(appletArgs);
}
}
}
这些字段在Rectangle2D.Float
上声明,但是testr
仅仅是Rectangle2D
。 更改其声明将使您可以访问它们,因为它们是公共的:
Rectangle2D.Float testr;
使用getter和setter是一个很好的建议,但是这些类没有单独的setter。 只有设置员才能设置整个矩形(即setRect )。
这些字段在 Rectangle2D.Float 上声明,您可以打印以进行控制。
Ellipse2D.Float test= new Ellipse2D.Float(getPosX()-40,getPosY()-40,30.0f, 30.0f);
System.out.println(test.getCenterX());
System.out.println(test.getCenterY());
System.out.println(test.getMinX());
System.out.println(test.getMinY());
System.out.println(test.getMaxX());
System.out.println(test.getMaxY());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.