全屏 Java 中的 JFrame

2022-08-31 08:40:15

我很快就会做一个项目,我将不得不在其中使用全屏模式。

它将在窗口中绘制一些图形。如果我使用JFrame或类似的东西,那将是很方便的。

我不知道屏幕的最终分辨率会是多少。请告诉我图形是否会自动重新缩放?

JFrame jf = new JFrame();
jf.setSize(1650,1080);
//make it fullscreen;
//now is everything is going to be rescaled so it looks like the original?

答案 1

加:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
frame.setUndecorated(true);
frame.setVisible(true);

答案 2

如果要将帧置于全屏模式(如全屏电影),请检查这些答案。

类 java.awt.GraphicsEnvironmentjava.awt.GraphicsDevice 用于将应用置于一个屏幕(配置)上的全屏模式。

例如:

static GraphicsDevice device = GraphicsEnvironment
        .getLocalGraphicsEnvironment().getScreenDevices()[0];

public static void main(String[] args) {

    final JFrame frame = new JFrame("Display Mode");
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setUndecorated(true);

    JButton btn1 = new JButton("Full-Screen");
    btn1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            device.setFullScreenWindow(frame);
        }
    });
    JButton btn2 = new JButton("Normal");
    btn2.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            device.setFullScreenWindow(null);
        }
    });

    JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
    panel.add(btn1);
    panel.add(btn2);
    frame.add(panel);

    frame.pack();
    frame.setVisible(true);

}

推荐