簡體   English   中英

java.awt.geom.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]

...哪種暗示可以訪問xy字段的位置? 甚至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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM