などの一部のGraphics2D
メソッドには、またはdrawString
として座標を取るバージョンがあります。どちらかを選択する理由はありますか?int
float
同様に、 (浮動小数点座標を使用する)Shape
などの新しいクラスを使用するか、 (座標をs として定義する) を使用する必要がありますか?Rectangle2D
Rectangle
int
などの一部のGraphics2D
メソッドには、またはdrawString
として座標を取るバージョンがあります。どちらかを選択する理由はありますか?int
float
同様に、 (浮動小数点座標を使用する)Shape
などの新しいクラスを使用するか、 (座標をs として定義する) を使用する必要がありますか?Rectangle2D
Rectangle
int
int と float が表示されます -
drawString(AttributedCharacterIterator iterator, float x, float y)
Renders the text of the specified iterator, using the Graphics2D context's current Paint.
drawString(AttributedCharacterIterator iterator, int x, int y)
Renders the text of the specified iterator, using the Graphics2D context's current Paint.
さらに精度が必要な場合は float を使用し、位置が十分な場合は int を使用します。
2番目の質問については、次のRectangle と Rectangle2D Differenceで説明/回答された以下を参照してください。
Rectangle は int 座標を使用します。Rectangle2D は、int、double、または float 座標を使用しているかどうかを気にしない抽象クラスです。
double と float のより高い精度が必要な場合は、Rectangle2D を使用する必要があります。
Rectangle2D は基本クラスであるため、抽象的な方法で四角形を操作するコードを記述している場合は、Rectangle2D を使用して、次のように割り当てます。
Rectangle2D rect = new Rectangle2D.Double(double, double, double, double);
また
Rectangle2D rect = new Rectangle(int, int, int, int)
int のみを扱うことがわかっている場合は、Rectangle をずっと使用できます。
Rectangle は Rectangle2D.Integer と呼ばれるべきだと言うかもしれません。しかし、それだけではありません。たとえば、Rectangle は 3 つの中で唯一、シリアライズ可能なインターフェイスを実装しているからです。
スカフマンがコメントしたように、それは少し古い問題です。