Теоретически вы можете сделать это таким образом. Java.awt.Toolkit сообщит вам размер пикселя и размеры экрана в пикселях. Таким образом, чтобы нарисовать 1 "круг, вы должны использовать диаметр 1,0 * tk.getScreenResolution (), 2,5" круг - 2,5 * tk.getScreenResolution () и т. Д. Или вы можете использовать метод GraphicsConfiguration.getNormalizingTransform () который регулирует разрешение до «фиксированного» размера.
К сожалению, оба эти метода полагаются на базовую систему, которая знает (и сообщает вам) фактическое разрешение вашего экрана. На практике это происходит очень редко. Все виды вещей могут повлиять на фактический размер пикселя. Фактический размер и производитель монитора один, а некоторые мониторы даже позволяют регулировать размер изображения на экране.
В этой статье http://www.developer.com/java/other/print.php/626071 обсуждается это.
Как правило, принтеры лучше сообщают вам свое реальное разрешение. Если вам абсолютно необходимо иметь изображение правильного размера, отправьте его туда.
Благодарность различным ответам, из которых я синтезировал этот.