Java 使用JFrame获得最大屏幕大小

Java 使用JFrame获得最大屏幕大小,java,jframe,jpanel,pong,Java,Jframe,Jpanel,Pong,我一直在用Java制作乒乓球,但我似乎无法准确设置JFrame的大小。这是我的主要课程: import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JFrame; public class Pong extends JFrame { private final Game panel; private final Dimension screenSize = Toolkit.getDefault

我一直在用Java制作乒乓球,但我似乎无法准确设置JFrame的大小。这是我的主要课程:

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

public class Pong extends JFrame {

    private final Game panel;
    private final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    public Pong() {
        setTitle("Pong");
        setSize(screenSize);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        panel = new Game(this);
        add(panel);
    }

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

}
当我运行程序时,窗口占据了整个屏幕,但当我尝试获取屏幕的尺寸时,它们比窗口的尺寸大,导致在窗口较低范围设置的任何内容都被切断。我发现获得真实尺寸的唯一方法是在panel类中调用
this.getHeight()
this.getWidth()
,或
this.getSize()
。我怎样才能马上得到真实的尺寸

您可以使用
JFrame\setExtendedState(JFrame.MAXIMIZED\u两者)

它的效果与在操作系统中放大窗口时相同

使用此方法,您现在可以通过调用问题中提到的不同方法获得“真实”维度。

尝试调用方法

检查此问题

输入代码:

this.setExtendedState(JFrame.MAXIMIZED_BOTH);
您可以在中找到详细信息


关于同一主题的另一个问题是。

使用这种方法,结果看起来是一样的。似乎它在高度中包含了窗口的菜单栏。@CarterS。你想要JFrame的大小而不是桌面的大小吗?我现在没听清你的意思。在乒乓球比赛中,我的球在弹起之前会从屏幕底部飞出,因为我无法得到确切的窗口高度
game.getHeight()
距离窗口边缘约15像素。是否尝试设置面板(游戏)的大小而不是JFrame(Pong)?我现在在panel类中使用
this.getSize()
来解决此问题。谢谢你的帮助!
public class Pong extends JFrame {

    private final Game panel;

    public Pong() {
        setTitle("Pong");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        panel = new Game(this);
        add(panel);
        setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);
        //setVisible(true);
    }

    public static void main(String[] args) {
        Pong pong = new Pong();
        pong.setVisible(true);
    }

}
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

public class Pong extends JFrame {

    private final Game panel;
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();

    public Pong() {
        setTitle("Pong");
        setSize((int)width,(int)height);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        panel = new Game(this);
        add(panel);
    }

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

}
this.setExtendedState(JFrame.MAXIMIZED_BOTH);