The images show the 2 different codes so I want to know why the result of the screen size in both codes varies depending on whether a JFrame was created before the call or not.
As the image shows when there's not JFrame it returns a different result than the one it returns when there's not a JFrame created yet at the moment of the call so any explanation on this phenomena would be appreciated.
I didn't have any issues. You might want to elaborate on your system properties
import java.awt.Toolkit;
public class Test {
static double screenWidth = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
static double screenHeight = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
static double screenWidth2;
static double screenHeight2;
public static void main(String[] args) {
new Test();
System.out.println("screenWidth = " + screenWidth + " ~ " + screenWidth2);
System.out.println("screenHeight = " + screenHeight + " ~ " + screenHeight2);
}
public Test() {
screenWidth2 = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
screenHeight2 = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
}
}
screenWidth = 1792.0 ~ 1792.0
screenHeight = 1120.0 ~ 1120.0
import java.awt.Toolkit;
import javax.swing.JFrame;
public class Test2 extends JFrame {
static double screenWidth = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
static double screenHeight = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
static double screenWidth2;
static double screenHeight2;
public static void main(String[] args) {
new Test2();
System.out.println("screenWidth = " + screenWidth + " ~ " + screenWidth2);
System.out.println("screenHeight = " + screenHeight + " ~ " + screenHeight2);
}
public Test2() {
screenWidth2 = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
screenHeight2 = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
}
}
screenWidth = 1792.0 ~ 1792.0
screenHeight = 1120.0 ~ 1120.0