Один из моих проектов - перейти с Java8 на Java11.У меня есть объект TextLayout.Я пытаюсь получить объект Rectangle2D, используя textLayout.getBounds () .
Одна странная вещь, которую я наблюдаю, состоит в том, что ширина объекта Rectangle2D в Java11 отличается от ширины Java8.Как это возможно?
Мой код:
package sample;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.geom.Rectangle2D;
public class Main extends Frame {
public Main() {
super("Java 2D Example01");
setSize(400, 300);
setVisible(true);
}
@Override
public void paint(Graphics g) {
FontRenderContext frc = ((Graphics2D) g).getFontRenderContext();
Font f = new Font("Times", Font.BOLD, 30);
TextLayout tl = new TextLayout("10x25in-Diagram1", f, frc);
Rectangle2D rectangleForAllText = tl.getBounds();
System.out.println(rectangleForAllText);
//java.awt.geom.Rectangle2D$Float[x=2.375,y=-21.5625,w=250.4375,h=27.875]
//java.awt.geom.Rectangle2D$Float[x=2.375,y=-21.5625,w=253.43736,h=27.875]
}
public static void main(String[] args) {
new Main();
}
}
Как видно из двух комментариев: Объект rectangleForAllText в Java8: java.awt.geom.Rectangle2D $ Float [x = 2,375, y = -21,5625, w = 250,4375, h = 27,875]
Тот же объект в Java11: java.awt.geom.Rectangle2D $ Float [x= 2,375, у = -21,5625, ш = 253,43736, ч = 27,875]
Может кто-нибудь сказать, пожалуйста, почему это так?Любое исправление / предложения будут очень признательны.
Спасибо.