我一直在努力用Java制作Pong,但我似乎无法准确设置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();
}
}
当我运行我的程序时,窗口占据了整个屏幕,但是当我尝试获取屏幕的尺寸时,它们比窗口的尺寸大,导致在窗口的较低范围设置的任何东西都得到隔断。我发现获得真实维度的唯一方法是在面板类中调用this.getHeight()
,this.getWidth()
或this.getSize()
。如何才能立即获得真正的尺寸?
答案 0 :(得分:1)
您可以使用JFrame#setExtendedState(JFrame.MAXIMIZED_BOTH)
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
与您在操作系统中放大窗口时的效果相同
使用此方法,您现在可以通过调用上述问题中提到的不同方法来获得“真实”维度。
答案 1 :(得分:1)
尝试调用方法setExtendedState
。
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);
}
}
答案 2 :(得分:0)
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();
}
}
答案 3 :(得分:0)