其他分享
首页 > 其他分享> > swing学习2

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