Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java JFrame Size according to screen resolution

I created java GUI using myEclipse Matisse. when my Screen Resolution is 1024x768 it works fine but when i change resolution my GUI is not working fine. I want my GUI window should be re-sized according to the screen Resolution I am extending JFrame to create the main window.

public class MyClass extends JFrame {

    //I am putting some controls here.

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setBounds(0,0,screenSize.width, screenSize.height);
    setVisible(true);

    pack();
}

this is not working, what ever i do, setting size hardcoded or by ToolKit using, the Frame Size Remains same.

like image 665
Asghar Avatar asked Jul 21 '11 13:07

Asghar


4 Answers

You can try using this to maximize the frame:

this.setExtendedState(JFrame.MAXIMIZED_BOTH);
like image 170
Kowser Avatar answered Nov 09 '22 13:11

Kowser


You are calling pack() which changes the frame size so it just fits the components inside. That's why it is shrinking back I think. Remove the pack() line and it should work.

like image 36
Petar Minchev Avatar answered Nov 09 '22 11:11

Petar Minchev


Another way to do this is:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
pack();
setSize(screenSize.width,screenSize.height);
like image 7
Buck Avatar answered Nov 09 '22 13:11

Buck


Calling pack() is vital to a correctly functioning GUI. Call it after all the components have been added, to have it validate the container and set it to it's natural size.

Then call setSize() & related methods like setBounds() afterwards.

like image 5
Andrew Thompson Avatar answered Nov 09 '22 11:11

Andrew Thompson