在Java中,框架被设计为放置组件的容器,所以并不直接将信息绘制在里面,而是把信息绘制在一个面板中,再将这个面板添加到框架中。
JFrame中,有四层面板:根窗格、层级窗格、玻璃窗格和内容窗格。前三个用来组织菜单栏和内容窗格以及实现观感,内容窗格则用来放置组件。
Container contentPane = frame.getContentPane();
Component c = ...;
contentPane.add(c);
上面是JDK1.4以前的版本的写法,在JDK1.5中直接用:
frame.add(c);
面板JPanel也是一个容器,可以放置按钮、滑块等组件,它也可以直接绘图。
在面板上直接绘图的方法:(1)继承JPanel类;(2)覆盖paintComponent方法。
paintComponent方法定义在JComponent类中,这个类是所有非窗口Swing组件的超类。该方法有一个Graphics类型的参数。Graphics对象保存着用于绘制图像和文本的设置。
在Java中,所有的绘图都必须通过Graphics对象,其中包括绘制图案、图像和文本的方法。