当前位置: 首页 > 知识库问答 >
问题:

窗口大小比它应该是小

柳轶
2023-03-14

好的,我有一个带屏幕的JFrame。我把尺寸设定为800乘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);
    }
}

在screen类中,paint方法在边框应位于的位置周围绘制一个框:

//Draw border
g.setColor(Color.RED);
g.drawRect(1, 1, 799, 799);

当我运行它时,窗口比盒子小,底部和右侧被切断。

请注意,我手动调整了第二张图片的大小,以显示边框的差异。

我意识到我已经把盒子的每一面都画小了1个像素,但差别远不止2个像素。

共有2个答案

喻珂
2023-03-14

而不是“screen.setSize(screenSize);”键入“screen.setPreferredSize(screenSize);”然后输入“frame.setVisible(true);”键入“frame.pack()”。您还可以删除“frame.setSize(screenSize);”如果你想的话。

单于淇
2023-03-14

这是因为内容需要压缩到帧大小减去边框。

查看此问题和此问题以获得更详细的解释

布局管理器还将覆盖您在屏幕上设置的大小属性。在这两种情况下,您都应该覆盖屏幕类的getPreferredSize方法

此外,您不应该依赖于神奇的数字或关于组件实际大小的假设,而是应该使用getWidthgetHeight(我知道,这只是为了演示)

 类似资料:
  • 我有一个字体大小的问题,它比它应该的要小得多,即使增加大小参数也没有什么区别。 首选的大小是为了显示它不是限制它的大小,而文本是随机的和长的,以显示文本有多小。它是所有字体,不仅没有衬线,但如果我使用系统默认字体,这是正常的。我还重新启动了电脑,以确保它没有错误地将字体加载到缓存中。 Panel只是一个具有正常流程布局的JPanel。 以下是该文本的图像: 文本大约5像素高。谢谢

  • 窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re

  • #include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j = j

  • 我刚开始使用JFace/SWT进行GUI编程。在我使用普通SWT窗口(http://help.eclipse.org/indigo/index.jsp?topic=%2forg.eclipse.wb.ercp.doc.user%2fhtml%2fwizards%2fercp%2fapplication_window.html)之前,我第一次尝试了JFace应用程序窗口。 现在我要设置这个窗口的最小

  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:

  • 问题内容: 我有以下JQuery代码: 唯一的问题是,这仅在首次加载浏览器时有效,我是否还希望在调整窗口大小时进行检查? 有任何想法吗? 问题答案: 这是一个使用jQuery,javascript和css处理调整大小事件的示例。 (如果您只是通过调整大小来设置样式(媒体查询),最好的方法是CSS) [ CSS javascript jQuery 如何停止调整大小的代码执行如此频繁! 这是绑定到调整