Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Intermediate
Jun 16, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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 any
import 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 * 480
 // etc
 setSize(800*umx/800, 600*umx/800);

Ulrik Magnusson
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date