swing学习2
作者:互联网
AWT 和 Swing 中框架和组件类的继承层次:
JFrame 的结构如下图
可以看到 , 在 JFrame 中有四层面板 。 其中的根面板 、层级面板和玻璃面板人们并不太关心 ; 它们是用来组织菜单栏和内容窗格以及实现观感的。
Swing 程序员最关心的是内容窗格 (contentpane )。在设计框架的时候 , 要使用下列代码将所有的组件添加到内容窗格中 :
Container contentPane = frame.getContentPane(); Component c = . . . ; contentPane.add(c);
也可以直接调用
frame.add(c);
绘制一个组件 , 需要定义一个扩展JComponent 的类 , 并覆盖其中的 paintComponent 方法
paintComponent 方法有一个 Graphics 类型的参数 , 这个参数保存着用于绘制图像和文本的设置。 例如 , 设置的字体或当前的颜色,在 Java 中 , 所有的绘制都必须使用 Graphics 对象,其中包含了绘制图案 、 图像和文本的方法。
class MyComponent extends JComponent{ public void paintComponent ( Graphics g ){ code for drawing } }
无论何种原因,只要窗口需要重新绘图,事件处理器就会通告组件,从而引发执行所有组件的 paintComponent 方法。
一定不要自己调用paintComponent 方法,在应用程序需要重新绘图的时候,这个方法将被自动地调用,不要人为地干预这个自动的处理过程。
package studyDay1; import java.awt.Graphics; import javax.swing.JComponent; class MyComponent extends JComponent{ public void paintComponent ( Graphics g ){ //显示文本是一种特殊的绘图, 在Graphics 类中有一个 drawstring 方法 , 调用的语法格式为: //g.drawString(text,x,y); g.drawString (" Not a Hello World program " ,75,100); } }
f.add(new MyComponent());
标签:JComponent,paintComponent,swing,学习,add,Graphics,组件,面板 来源: https://www.cnblogs.com/zhaideang/p/12340090.html