gpt4 book ai didi

swing - JFrame的Container里面的JPanel的宽高都是0,为什么?

转载 作者:行者123 更新时间:2023-12-04 06:06:44 25 4
gpt4 key购买 nike

我想我有一个简单的问题,你应该知道如何解决..
我正在尝试这样做:
我有一个 JFrame。
然后我创建一个 JPanel 并将他的布局设置为 GridLayout(5,5)
最后,我将此 JPanel 添加到我的 JFrame 的容器中。

当我尝试获得面板的宽度时,它不应该给我 0,对吗?
我这样做: System.out.println(mypanel.getSize().getWidth());它说这是零:c
为什么 ??
我想知道大小,这样我就可以每 5 分,并知道每个标签要画多少,这将是一个标签网格..
非常感谢提前...

    public janela(){

window = new JFrame("teste");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(300,300);
contentor = window.getContentPane();
interior = new JPanel();
interior.setLayout(new GridLayout(5,5));
contentor.add(interior);

System.out.println(interior.getSize().getWidth()); //it says 0 ?!?! why??
}

非常感谢你们!!!!

最佳答案

面板的大小基于其布局。特别是在显示它们并且为您调用 doLayout() 时。 doLayout() 根据面板的内容和有效的布局管理器计算出适合您的面板的大小。由于您的面板中没有任何内容,因此适当的大小为 0, 0。

如果面板中永远不会有任何东西,并且想要绕过这个 (0, 0) 大小,您可以覆盖面板的 getPreferredSize() 以返回您希望面板尊重布局的大小。

关于swing - JFrame的Container里面的JPanel的宽高都是0,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com