当前位置: 首页 > 面试题库 >

获取JFrame内容的实际大小

时宾实
2023-03-14
问题内容

我得到一个JFrame,我想显示一个带有边框的JLabel,其填充可能为50px。当我将JFrame的大小设置为750、750并将JLabel的大小设置为650、650并将位置设置为50、50时,它显示为奇怪……这是我的代码:

public class GUI {

    /**
     * Declarate all 
     */
    public int height = 750;
    public int width = 750;

    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (screen.width / 2) - (width / 2); // Center horizontally.
    int y = (screen.height / 2) - (height / 2); // Center vertically.

    /**
     * Create the GUI
     */
    JFrame frame = new JFrame();
    Border border = LineBorder.createBlackLineBorder();
    JLabel label = new JLabel();

    public GUI(){
        label.setBorder(border);
        label.setSize(700, 700);
        label.setLocation(0, 0);

        frame.getContentPane().setLayout(null);
        frame.add(label);
    }

    public void createGUI() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(x,y,width,height);
        frame.setVisible(true);
    }

}

因此,我认为顶部的标题栏也包含在大小中。在图形中,您可以使用getInsets()。现在,Swing / JFrame有类似的东西吗?


问题答案:

首先获取由帧修剪的像素。

int reqWidth = reqHeight = 750;

// first set the size
frame.setSize(reqWidth, reqHeight);

// This is not the actual-sized frame. get the actual size
Dimension actualSize = frame.getContentPane().getSize();

int extraW = reqWidth - actualSize.width;
int extraH = reqHeight - actualSize.height;

// Now set the size.
frame.setSize(reqWidth + extraW, reqHeight + extraH);

另一种更简单的方法。以前的作品,但是建议这样做。

frame.getContentPane().setPreferredSize(750, 750);
frame.pack();

希望这可以帮助。

编辑:

在将组件添加到框架之前,在构造函数中添加它。并设置在中间,使用

frame.setLocationRelativeTo(null);

这将使窗口在屏幕上居中。



 类似资料:
  • 问题内容: 我正在尝试使JFrame的可用内容区域恰好为500x500。如果我这样做 …我得到一个全尺寸为500x500的窗口(包括标题栏等),在这里,我确实需要一个尺寸约为504x520的窗口来说明窗口边框和标题栏。我该如何实现? 问题答案: 您可以尝试以下几种方法:1-骇客: 2或将JPanel添加到框架的内容窗格中,然后只需将JPanel的首选/最小尺寸设置为500X500,请调用pack(

  • 还有一种调用模板的情况是我们只想渲染后返回模板渲染后的数据而不是直接输出,这时我们会用fetch方法; fetch的用法和display 完全一样,只是不直接输出了; //不带任何参数 $content=$this->fetch(); 此种方式系统会自动判断模板路径,并渲染出模板内容,此种方式模板路径是:主题名/应用名/控制器名/操作名+模板文件后缀名; $content=$this->fetc

  • 在JFrame上调整大小后,是否有任何方法返回新旧大小之间的差异,即(dx,dy)? 如果没有,有没有办法获得这些信息? (dx,dy)-图像

  • 我正在尝试从构建镜像。构建后,命令报告的镜像虚拟大小为1.917 GB。我登录检查大小(),它是573 MB。我很确定这个巨大的大小通常是不可能的。这是怎么回事?如何获得正确的图像大小?更重要的是,当我推送这个存储库时,大小是1.9 GB而不是573 MB。 输出

  • 本文向大家介绍php获取远程文件的内容和大小,包括了php获取远程文件的内容和大小的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了php获取远程文件的内容和大小的方法。分享给大家供大家参考。具体如下: 1、获取远程文件内容的方法 2、获取远程文件大小的方法 以上就是php获取远程文件的内容和大小函数代码,希望对大家的学习有所帮助。

  • 我有文件夹在我的域名像example.com/photos. 我需要得到该文件夹的内容并打印具有特定名称的图片,如(可以是任何东西)。 我试过: 但它返回了一个错误 警告:斯堪的纳维亚(http://www.example.com/photos/):无法打开目录:未在/home/egiadog/public\u html/mobil/test中实现。php在线3 警告:scandir():(错误号