【发布时间】:2013-04-13 10:47:41
【问题描述】:
好的,我已经有了这个带有屏幕的 JFrame。我已将大小设置为 800 x 800。但是创建的窗口比这小。这不是任务栏的问题,因为它不是全尺寸的。
package sharph;
import java.awt.Dimension;
import javax.swing.JFrame;
public class Main extends JFrame {
public static String Title = "Game 1";
public static Dimension screenSize = new Dimension(800,800);
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle(Title);
frame.setSize(screenSize);
frame.setLocationRelativeTo(null);
frame.setResizable(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
Screen screen = new Screen();
screen.setSize(screenSize);
frame.add(screen);
frame.setVisible(true);
}
}
在屏幕类中,paint 方法在边框应该在的位置周围绘制一个框:
//Draw border
g.setColor(Color.RED);
g.drawRect(1, 1, 799, 799);
我运行的时候,窗口比盒子小,底部和右侧都被切掉了。
注意我手动调整大小以显示边框差异的第二张图片。
我意识到我在每边都画出了小 1 个像素的框,但差别远大于 2 个像素。
【问题讨论】:
-
800*800 是窗口装饰(框架和标题栏)的大小,而不是内部空间的大小。
-
我不确定,但试试
frame.pack()