繁体   English   中英

Java屏幕分辨率大小

[英]Java Screen Resolution Size

我需要有关正在创建的项目的一些指导。 我目前正在尝试创建一个JFrame,它会自动打开到屏幕分辨率。 我在网上寻求有关该项目这一方面的帮助,并且发现了多种实现方法。 在通过API对方法进行了更多研究之后,以及如何使用这些方法的参考代码,我整理了一些代码。 运行程序时,我会看到一个这样弹出的窗口...(不是全屏显示...)

计划结果

我希望能得到一些有关我搞砸的地方的指针,我希望以技巧或窍门的方式提供帮助,但我也会接受代码(对不起,我只是尝试学习而不是复制代码)。 感谢您的时间。

import java.awt.Toolkit;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.Frame;

public class Window {

private static int ScreenWidth;
private static int ScreenHeight;

public int getWidth(){
    return  ScreenHeight;
}

public int getLength(){
    return ScreenHeight;
}

public void WindowSetup(){
    Dimension UserScreen = Toolkit.getDefaultToolkit().getScreenSize();
    int ScreenWidth = (int) UserScreen.getWidth();
    int ScreenHeight = (int) UserScreen.getHeight();
}

static void CreateJframe(){
    JFrame gui  = new JFrame("Changeable Resolution");
    gui.setDefaultLookAndFeelDecorated(true);
    gui.setDefaultCloseOperation(gui.EXIT_ON_CLOSE);
    gui.setPreferredSize(new Dimension(ScreenWidth, ScreenHeight));
    gui.pack();
    gui.setVisible(true);

}


public static void main(String[] args) {
    Window window = new Window();
    Window.CreateJframe();      
}

}

  1. 您永远不会调用WindowSetup
  2. 您将getScreenSize的结果分配给局部变量
  3. 然后调用pack ... pack使用内容的首选大小(而不是窗口大小)来决定谁最适合调整窗口大小。

这样就行不通了...

最简单的方法是使用JFrame#setExtendedState并将其传递给JFrame.MAXIMIZED_BOTH

JFrame gui = new JFrame("Changeable Resolution");
gui.setExtendedState(JFrame.MAXIMIZED_BOTH);
gui.setDefaultCloseOperation(gui.EXIT_ON_CLOSE);
gui.pack();
gui.setVisible(true);

现在,您可能会说,但是我想介绍一下任务栏...

在这种情况下,您可以尝试更像...

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();

GraphicsConfiguration gc = gd.getDefaultConfiguration();
Rectangle bounds = gc.getBounds();

JFrame gui = new JFrame("Changeable Resolution");
gui.setSize(bounds.width, bounds.height);
gui.setLocation(bounds.x, bounds.y);
gui.setDefaultCloseOperation(gui.EXIT_ON_CLOSE);
gui.setVisible(true);

但是您可能会发现任务栏不喜欢被遮盖,在这种情况下,您将需要采用全屏独占模式...

有关更多详细信息,请参见全屏独占模式API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM