Saya telah menulis aplikasi GUI, setiap shell menggunakan GridLayout. Setelah menulisnya untuk layar 1280*1024, saya menyadari bahwa saya harus membuatnya dapat digunakan di setiap tampilan, jadi saya menambahkan metode yang mengubah tinggi dan lebar setiap elemen sesuai dengan resolusi tampilan:

public static int widthconverter(double x){   
        int width = 0;
        width=(int) ((x/1280.0)*screenWidth);
        return width;
    }
public static int heightconverter(double x){
        int height = 0;
        height=(int) ((x/1024.0)*screenHeight);
        return height;
    }

Ini tidak bekerja seperti yang saya inginkan. Misalnya menggunakan resolusi 800*600, ukuran shell diubah tetapi lebar dan tingginya agak terlalu kecil untuk mencakup semua elemen yang disertakan. Pergi ke tampilan 4K juga tidak berfungsi sesuai kebutuhan.

Setiap ide untuk menyelesaikan ini sangat dihargai.

1
Fabian83 16 Desember 2016, 16:25

1 menjawab

Jawaban Terbaik

Kode yang memecahkan masalah saya untuk siapa saja yang memiliki masalah yang sama:

static double screenWidth= screen.getWidth(); 
static double screenHeight=screen.getHeight(); 
int pixelPerInch=java.awt.Toolkit.getDefaultToolkit().getScreenResolution(); 
static double scalingFactorheight=(screenWidth/screenHeight)/1.25;

public static int widthconverter(double x){
    int width = 0;
    width=(int) ((x/1280.0)*screenWidth);
    return width;
}

public static int heightconverter(double x){
    int height = 0;
    height=(int) ((x/1024.0)*screenHeight*scalingFactorheight);
    return height;
}
0
Fabian83 23 Januari 2017, 08:28