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

Java .pack()有什么作用?

卞云瀚
2023-03-14
问题内容

我正在学习JPanel和GridLayout,此代码段将生成带有6个按钮的简单JPanel

package testing;


import java.io.*;
import java.util.*;
import java.security.*;
import javax.xml.bind.DatatypeConverter;
import java.lang.*;
import java.awt.*;
import javax.swing.*;

public class Testing 
{

    public static class GridPanel extends JPanel 
    {
        public GridPanel()
        {
            setLayout(new GridLayout(2,3));
            setBackground(Color.GREEN);
            this.setPreferredSize(new Dimension(500,500));

            JButton b1 = new JButton ("Button 1");
            JButton b2 = new JButton ("Button 2");
            JButton b3 = new JButton ("Button 3");
            JButton b4 = new JButton ("Button 4");
            JButton b5 = new JButton ("Button 5");
            JButton b6 = new JButton ("Button 6");

            add(b1);
            add(b2);
            add(b3);
            add(b4);
            add(b5);
            add(b6);
        }

    }



    public static void main(String[] args) 

    {
       GridPanel gp = new GridPanel();
       JFrame jf = new JFrame();
       jf.add(gp);
       jf.pack(); //code wouldnt work if i comment out this line
       jf.setVisible(true);

    }

}

我想知道为什么如果我注释掉我的代码将不起作用 jf.pack()


问题答案:

打包方法调整框架的大小,以使其所有内容均等于或大于其首选大小。打包的另一种方法是通过调用setSize或setBounds(也设置帧位置)显式建立帧大小。通常,使用pack优于调用setSize,因为pack由框架布局管理器负责框架大小,并且布局管理器擅长调整平台依赖性和其他影响组件大小的因素。



 类似资料:
  • 问题内容: 如果一个网页以…开头有什么区别 并且如果页面以 如果没有区别,我想我可以忽略元标头,因为我只想在所有IE版本中以最标准的方式呈现它。 问题答案: 这个答案是几年前发布的,现在的问题确实应该是 您_是否 _应该考虑 在您的网站上 使用 标记? 微软对其浏览器所做的更改(更多有关以下内容)。 根据您支持的Microsoft浏览器,您可能不需要继续使用该标记。如果您需要支持IE9或IE8,那

  • Java中Object有一个方法: public native int hashcode(); (1)hashcode()方法的作用 hashcode()方法主要配合基于散列的集合一起使用,比如HashSet、HashMap、HashTable。 当集合需要添加新的对象时,先调用这个对象的hashcode()方法,得到对应的hashcode值,实际上hashmap中会有一个table保存已经存进去

  • 问题内容: 我是Java的新手,刚刚遇到了在方法中使用“ Throws”关键字的教程。我对此进行了一些研究,但仍然不太了解。 从我到目前为止所看到的,它告诉编译器在该特定方法中可能抛出某些异常。为什么我们需要告诉编译器呢?我已经在我的方法中仅使用try- catch语句制作了许多程序,并且效果很好-当然,这些try-catch语句可以管理异常,对吗? 问题答案: 您可以使用和如您所说 在 方法 内

  • 问题内容: 我在一些Spring webflux代码中遇到了Mono.defer() 我在文档中查找了该方法,但不理解其中的解释: “创建一个Mono提供程序,该提供程序将提供目标Mono供每个下游的订阅者订阅” 请给我一个解释和一个例子。我可能会参考一堆Reactor示例代码(它们的单元测试?)的地方。 谢谢 问题答案: 这有点过分简化,但是从概念上讲,Reactor的来源要么是懒惰的,要么是渴

  • 问题内容: 我正在关注Stephen Grinder的教程,在那里他开始使用Promisify。 为此,他给出了非常模糊的解释,说redis需要回调函数,并且他发现非常不整洁+ redis不支持NodeJS中的promises。 然后他做了这样的事情 出于某种原因,我发现该解释含糊不清,有人可以以最人性化的方式进行解释吗?像他的意思和我们在做什么? 问题答案: 当您要将回调函数转换为基于promi

  • 问题内容: 具体来说,为什么对解决PermGen OutOfMemoryError问题有帮助? 另外,为我提供有关JVM参数文档的答案,还有加分。 问题答案: 永久空间是VM使用的类,方法,内部化的字符串以及类似对象的存储位置,并且从不释放(因此命名)。 这篇Oracle文章简洁地介绍了HotSpot GC的工作原理和参数化,并建议您在加载许多类时增加此空间(对于应用程序服务器和诸如Eclipse

  • 问题内容: 你能解释一下调用时会发生什么吗? 问题答案: 设置目标线程的中断状态/标志。然后在该目标线程中运行的代码可以轮询中断状态并适当地处理它。一些诸如之类的方法可能会立即消耗中断状态并抛出适当的异常(通常为) Java中的中断不是抢先的。换句话说,两个线程必须配合才能正确处理中断。如果目标线程未轮询中断状态,则该中断将被有效忽略。 通过返回当前线程的中断状态并清除该中断标志的方法进行轮询。通

  • 本文向大家介绍$nextTick有什么作用?相关面试题,主要包含被问及$nextTick有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 文档中特别提到了两个词, 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM 「DOM更新循环结束后之后」「在修改数据之后」也就是说它触发的时机实在dom 更新完毕以及动态数据触发双向绑定的虚拟dom 渲染结