Modifying Layout on Multiple Platforms

You can use the Toolkit’s getScreenSize().width to recompute the size of a component at run time. For example, if you have a Frame that is supposed to have the screen’s height, given the int umx by the previous method, you can compute the height of the Frame like this: 600*umx/800. This means, on a 800*600 screen: 600 * 800 / 800 = 600 and on a 640*480 screen: 600*640/800 = 480.

If you only want the Frame’s height to be 400 on an 800*600 screen (half the screen width), you can compute it like this: 400 * umx / 800. This will completely ignore the fact that your neighbor has a computer with a 1024*800 screen. The size will still be 400*1024 / 800 which equals 512, or half the screen’s width. You can use this trick for any layout problem, but be careful using it on Fonts. It will make letters appear less solid on screens with lower resolution.

 // This sample program just creates an empty whole-screen Frame on anyscreenimport java.awt.*;public class WholeScreen extends Frame{ int umx; public static void main(String args[]) { WholeScreen ws = new WholeScreen(); } public WholeScreen() { //gets the umx value - the width of the current screen: umx = this.getToolkit().getScreenSize().width; //sets the size of this Dialog to 800,600 on a 800*600 screen // and ((800*640 / 800), (600*640 / 800)) = 640, 480 on a 640 * 480screen // etc setSize(800*umx/800, 600*umx/800); setVisible(true); }}
Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: