Я не могу понять пиксельную логику c в java - PullRequest
0 голосов
/ 01 апреля 2020

Я довольно новичок в программировании, и я не понимаю, использует ли Java независимые пиксели или нормальные пиксели. Я создал программу и попытался изменить разрешение экрана (3840x2160 / 2048x1152 / 1920x1080). Но я получаю действительно странные результаты (я читал о dpi и коэффициентах, чтобы перейти от dp к px, но на самом деле не понял этого). Если бы вы могли подробно объяснить мне, как очень глупому человеку, который почти не имел опыта в Java, как работает pixel logi c в Java, я был бы очень признателен. Спасибо!)

import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.Timer;

public class Game extends Canvas {
public static final int WIDTH = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
public static final int HEIGHT = 50;
private double scale = 1.5;
public JFrame frame;

public Game() {
    Dimension size = new Dimension((int) (WIDTH * scale), (int) (HEIGHT * scale));
    setPreferredSize(size);

    System.out.println("1 " + Toolkit.getDefaultToolkit().getScreenSize());
    frame = new JFrame();
    System.out.println("2 " + Toolkit.getDefaultToolkit().getScreenSize());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setLocationRelativeTo(null);
    frame.setResizable(true);
    frame.add(this);
    frame.pack();

    Timer timer = new Timer(500, new SizeCheck());
    timer.start();

}

public static void main(String[] args) {
    new Game();
}

class SizeCheck implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        System.out.println(Game.WIDTH);
        System.out.println(Toolkit.getDefaultToolkit().getScreenSize().getWidth());
        System.out.println(Toolkit.getDefaultToolkit().getScreenResolution());
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...