为什么容器没有大小?求问,求问~~~

Neo_Aector 2016-09-09 06:36:39
如题。

新建了一个JFrame,在其中加入一个Container,再用两个Dimension分别获得JFrame和Container的大小。然而能够获得JFrame的大小,Container的大小却始终是0。这是为什么?

求教

代码如下:

public class MyJFrame extends JFrame{

  private JPanel jp1=new JPanel();
  private JLabel jl1=new JLabel();
  private Container cc;
  private Dimension di,di1;

  public MyJFrame(){
    setBounds(300,100,600,600);
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     cc=this.getContentPane();
     setLayout(null);

     jp1.setBounds(10,10,570,570);
     add(jp1);

     di=cc.getSize();
     di1=this.getSize();

     jl1.setText("Container's width:: "+di.width+" Container's height:: "+di.height+
       " JFrame's width:: "+di1.width+" JFrame's height::"+di1.height); jp1.add(jl1);

    setVisible(true);
  }

  public static void main(String[] args){
    MyJFrame mf1=new MyJFrame();
  }
}


运行结果:
Container's width:: 0 Container's height:: 0 JFrame's width:: 600 JFrame's height::600
...全文
467 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Neo_Aector 2016-09-26
  • 打赏
  • 举报
回复
引用 6 楼 a1846427859 的回复:
你试试先add(jp1),然后在setBound(x, y, w, h),setBound放在add的前面和后面是有区别的。如果不行当我没说,请忽略,得了请给分。
谢答~~试验过了不行~~
a1846427859 2016-09-26
  • 打赏
  • 举报
回复
你试试先add(jp1),然后在setBound(x, y, w, h),setBound放在add的前面和后面是有区别的。如果不行当我没说,请忽略,得了请给分。
Neo_Aector 2016-09-26
  • 打赏
  • 举报
回复
顶顶~~~ 我的问题有这么难?
Neo_Aector 2016-09-19
  • 打赏
  • 举报
回复
顶顶,说我没结贴~~ 这根本没人回复~~~
Neo_Aector 2016-09-14
  • 打赏
  • 举报
回复
引用 2 楼 day_moon 的回复:
没有把JPanel放入Container中
厄,即使上面的 add(jp1); 改成 cc.add(jp1); 结果还是一样的。
Neo_Aector 2016-09-11
  • 打赏
  • 举报
回复
厄,没有人吗? 就是为什么container的长宽都是0?至少已经把JPanel放入JFrame中了吧?
day_moon 2016-09-11
  • 打赏
  • 举报
回复
没有把JPanel放入Container中

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧