标签:JComponent paintComponent swing 学习 add Graphics 组件 面板
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。