AWT Canvas类

1 什么是Java AWT Canvas

Canvas画布控件代表一个矩形区域,应用程序可以在其中绘制某些内容或接收用户创建的输入。

2 Java AWT Canvas的语法

public class Canvas
   extends Component
      implements Accessible

3 Java AWT Canvas的构造方法

构造方法 描述
Canvas() 构造一个新的画布。
Canvas(GraphicsConfiguration config) 给定一个 GraphicsConfiguration 对象构造一个新的 Canvas。

4 Java AWT Canvas的方法

方法 描述
void addNotify() 创建画布的对等点。
void createBufferStrategy(int numBuffers) 在此组件上创建多缓冲的新策略。
void createBufferStrategy(int numBuffers, BufferCapabilities caps) 使用所需的缓冲功能在此组件上创建多缓冲的新策略。
AccessibleContext getAccessibleContext() 获取与此 Canvas 关联的 AccessibleContext。
BufferStrategy getBufferStrategy() 返回此组件使用的 BufferStrategy。
void paint(Graphics g) 绘制这幅画布。
void pdate(Graphics g) 更新此画布。

5 Java AWT Canvas的例子

让我们看一个简单的Java AWT Canvas类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showCanvasDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("一点教程网:Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showCanvasDemo(){
      headerLabel.setText("Control in action: Canvas"); 

      controlPanel.add(new MyCanvas());
      mainFrame.setVisible(true);  
   } 

   class MyCanvas extends Canvas {

      public MyCanvas () {
         setBackground (Color.GRAY);
         setSize(300, 300);
      }

      public void paint (Graphics g) {
         Graphics2D g2;
         g2 = (Graphics2D) g;
         g2.drawString ("It is a custom canvas area", 70, 70);
      }
   }
}

输出结果为:

热门文章

优秀文章