刚开始学习java并且正在玩Jframes,Jpanels和Graphics,并且想知道为什么我们必须覆盖getPreferredSize和PaintComponent方法才能使图形对象出现在已添加到Jframe的Jpanel中?
答案 0 :(得分:3)
你不需要"需要"到,但肯定会有所帮助。
基本组件(如JPanel
和JComponent
)的preferredSize
0x0
,当与某些布局管理器一起使用时,会使组件几乎不可见(在事实上,绘画子系统甚至不会绘制一个大小为0x0
)的组件。
在日常使用中,他们通过应用于他们的布局管理器计算他们的preferredSize
,它使用子组件来计算结果。
因此,在没有子组件的情况下,您需要提供适当的大小提示,因此当您使用类似JFrame#pack
之类的内容时,您最终不会得到“#34”扁平包装&#34 ;窗口或坐了几个小时,想知道为什么你真棒组件不会出现