Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFrame大小、大小、全屏_Java_Swing_Resize_Jframe_Fullscreen - Fatal编程技术网

Java JFrame大小、大小、全屏

Java JFrame大小、大小、全屏,java,swing,resize,jframe,fullscreen,Java,Swing,Resize,Jframe,Fullscreen,我的问题有三个部分 我想知道,如何将JFrame窗口设置为可调整大小,但不能设置为最小大小,因此用户无法使其小于最小大小 我想知道,如何将JFrame窗口设置为可调整大小,但即使用户正在调整其大小,仍保持纵横比(16:9) 我想知道,在他点击一个按钮后,我如何才能使程序真正全屏化,这样就没有边界,运行起来就像一个游戏或其他东西(如果有任何具体问题,我如何才能安全地恢复它) 感谢您的帮助和耐心,因为我的英语不太好,Java知识也不太好 提供的答案很有用,回答了我的部分问题,但对我来说,大部分答案仍

我的问题有三个部分

  • 我想知道,如何将
    JFrame
    窗口设置为可调整大小,但不能设置为最小大小,因此用户无法使其小于最小大小
  • 我想知道,如何将
    JFrame
    窗口设置为可调整大小,但即使用户正在调整其大小,仍保持纵横比(16:9)
  • 我想知道,在他点击一个按钮后,我如何才能使程序真正全屏化,这样就没有边界,运行起来就像一个游戏或其他东西(如果有任何具体问题,我如何才能安全地恢复它)
  • 感谢您的帮助和耐心,因为我的英语不太好,Java知识也不太好

    提供的答案很有用,回答了我的部分问题,但对我来说,大部分答案仍然是空白的

    守则的一部分:

    private void createDisplay() {
        GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    
        frame = new JFrame(title);                                              //setting the title of the window
        frame.setSize(width, height);                                           //setting the width and height of the window
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                   //make sure program closes down properly
        frame.setResizable(true);
        frame.setLocationRelativeTo(null);                                      //the window will apparel on the center
        frame.setVisible(true);
        frame.setIconImage(Assets.ImageMap.get("icon"));
    
        canvas = new Canvas();
        canvas.setPreferredSize(new Dimension(width, height));
        canvas.setMaximumSize(new Dimension(width, height));
        canvas.setMinimumSize(new Dimension(gd.getDisplayMode().getWidth() / 2, gd.getDisplayMode().getHeight() / 2));
        canvas.setFocusable(false);
    
        frame.add(canvas);
        frame.pack();                                                           //resize the window a little bit so able to see all of canvas
    }
    
  • 设置帧的最小大小(setMinimumSize)
  • 更为困难的是,因为您会在事后收到大小更改的通知,因此在系统发生更改时,您将始终与之抗争(然后您会遇到生成大小更改事件的人的问题)。最好根据帧内的可用空间来保持帧内容的比率(VLC就是一个很好的例子)

  • 可能重复的请提供您尝试过的代码。