如何使 JFrame 具有一定的大小,不包括边框?

2024-01-04

我有一个 JFrame,已使用 setBounds 设置为特定大小。然而,这使得窗口(包括边框)达到这个尺寸(事后看来这是完全有道理的)。但我想要的是窗口的大小,例如 800x600plus边界。这很重要,因为我正在从 JFrame 的 BufferStategy 绘制到 Graphics 对象,但当使用小于 20 的 y 值时,我一直在标题栏下方绘制。我想象不同的操作系统(甚至不同的操作系统设置)也可以有不同厚度的边框。我以为边框只是后来钉在窗户上的,但事实似乎并非如此。

那么,无论边框的厚度如何,如何使边框内的空间达到一定的大小呢?另外,为了让我的生活更轻松,如何使点 0, 0 成为框架可视内容的左上角?

顺便说一句,使用 setUndecorated 会带来它自己的问题,所以我现在不尝试这样做。


  1. 设置内容窗格的首选大小。
  2. 装好框架。
  3. 任务完成。

E.G.

import java.awt.*;
import javax.swing.*;

class FixedSizeContent {
    public static void main(String[] args) {
        SwingUtilities.invokeLater( new Runnable() {
            public void run() {
                JFrame f = new JFrame("Fixed size content");
                f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                Container c = f.getContentPane();
                c.setBackground(Color.YELLOW);
                // adjust to need.
                Dimension d = new Dimension(400,40);
                c.setPreferredSize(d);
                f.setResizable(false);
                f.pack();
                f.setVisible(true);
            }
        });
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 JFrame 具有一定的大小,不包括边框? 的相关文章

随机推荐