The fineness of the monitor screen.
If you look at the Windows Control Panel under
Display, (or the equivalent) you can see that you can control the screen resolution,
typically something like 640x480, 800 × 600, 1024 × 768, 1280 ×
1024, 1920 × 1080 (HDTV (High Definition Television)), 1920 × 1199 up to
about 7680 × 4800. The image on your screen in made up of rows and columns of
tiny coloured dots called pixels. The number 1280 × 1024 means the image is 1280 columns of dots wide by 1024
rows of dots high.
Low resolution would be 640 × 480 pixels (width
× height). High resolution would be 1280x1024. The Dell 15" WUXGA has
1920x1200. Because the more dots you have, the smaller they are, you must compensate
by using a larger monitor for high resolution, or the type will be too small to
If you double the resolution, there are four times as many dots. This means the
video hardware has four times as much work to do each second to keep the screen
refreshed. Further, the computer has four times as many dots to render each time the
screen changes. For high resolutions, you thus need high performance video
Recent LCDs (Liquid Crystal Displaies)
use a hardware resolution between 86dpi and 147dpi, only a few
use a resolution around 204dpi (Toshiba, IBM (International Business Machines)
To summarise, there are four way to
Trust your eyes not the specs. They are the ones that have to be happy with the
image. It should not flicker or distort. It should be sharp and clear.
- total number of pixels (dots), e.g. 1280x1024. Bigger
- diagonal size of the screen, e.g. 15" (
LCD (Liquid Crystal Display) makers are more honest that
CRT (Cathode Ray Tube)
makers). Bigger is better. Take a ruler to the showroom with you to get he honest
- dpi, dots per inch, how densely the pixels are
packed. Bigger is better. A 1280 × 1024 image on a 17 monitor is only about 100 dpi. A 1600 ×
1198 image on a 19 monitor is about 111 dpi.
- dot pitch, how wide the physical sub-pixels are.
Smaller in better. A typical monitor spaces the red dots about 0.231 mm apart.
- VU. Visual Units. This is my personal proposal. One VU
is the vertical distance between two lines of type the user can comfortably read.
It is the leading of the user’s preferred body font. What it corresponds to
in cm or pixels depends on many factors including visual acuity, personal
preference and screen resolution. My idea is you would design in visual units,
and the user would configure the value of a visual unit in pixels using a system
wide slider in the Control Panel. The definition would then by used by the
OS (Operating System) and all
apps. The user could adjust it an any time, causing a system wide revalidate. The
GUI (Graphic User Interface)
and layouts would still work in pixels at the low level, but for various higher
level methods you could specify coordinates and sizes in terms of a VU grid, or
perhaps in terms of integral MVUs, thousandths of a VU. The notion could be used
both for designing screen layouts and printed output easily readable by the user.
- An old HP (Hewlett Packard) Laserjet printer is 300 dpi.
- Newsprint is about 500 dpi.
- A modern laser printer is usually 600 dpi.
- Modern ink-jet printers are about 4800 × 1197
dpi. They are limited mainly by ink smudging and the quality of the paper.
- Glossy magazines and photypesetters are about 1200 dpi.
The Scale Problem
The problem is ordinary Java apps look too small on these high resolution screens,
because Java apps are constructed in pixels, not points or inches the way PostScript is. A program that draws an icon 32
pixels high looks huge on a low res screen, but shrinks down to a mite on an ultra
The free and open source JGoodies Forms layout system
addresses this issue; it supports non-pixel sizes: pt, mm, cm, in and more important,
it supports DLU (Dialog Units)
that scale with the resolution and dialog font size. Here is how to find the size and
resolution of the screen to use in adjusting your Font and
See a more detailed discussed under scalable
Oracle’s Javadoc on getScreenSize
class : available:
Oracle’s Javadoc on getScreenResolution
class : available: