[英]Fields of java.awt.geom.Rectangle2D?
Not a Java person here, I'm just trying this code in Processing.org :这里不是 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);
}
It prints out:它打印出:
java.awt.geom.Rectangle2D$Float[x=1.0,y=1.0,w=30.0,h=30.0]
... which sort of implies where are x
and y
fields accessible? ...哪种暗示可以访问
x
和y
字段的位置? Even Rectangle2D.Float (Java Platform SE 7 ) says:甚至Rectangle2D.Float (Java Platform SE 7)说:
Field Summary
现场总结
......
float x浮动 x
The X coordinate of this Rectangle2D.此 Rectangle2D 的 X 坐标。
And yet, if I uncomment println(testr.x);
然而,如果我取消注释
println(testr.x);
, compilation fails with: , 编译失败:
testr.x cannot be resolved or not a field.
Where am I going wrong - and why cannot I access a field, which the documentation clearly says exists?我哪里出错了 - 为什么我不能访问文档明确指出存在的字段?
Btw, this is what I find in /tmp
as the full .java
source when the processing .pde
manages to compile:顺便说一句,当处理
.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);
}
}
}
These fields are declared on Rectangle2D.Float
but testr
is just a Rectangle2D
. 这些字段在
Rectangle2D.Float
上声明,但是testr
仅仅是Rectangle2D
。 Changing its declaration will let you access them since they are public: 更改其声明将使您可以访问它们,因为它们是公共的:
Rectangle2D.Float testr;
It's a good suggestion to use getters and setters but there aren't individual setters for these classes. 使用getter和setter是一个很好的建议,但是这些类没有单独的setter。 Only setters to set the entire rectangle (namely setRect ).
只有设置员才能设置整个矩形(即setRect )。
These fields are declared on Rectangle2D.Float you can print to control.这些字段在 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.