coloredcanvas.java

来自「java2图形设计卷1:awt 源码」· Java 代码 · 共 55 行

JAVA
55
字号
import java.awt.*;
import java.awt.event.*;

public class ColoredCanvas extends Canvas {
	Color color;

	public ColoredCanvas(Color color) {
		this.color = color;

		addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent event) {
				requestFocus();
			}
		});
		addFocusListener(new FocusListener() {
			public void focusGained(FocusEvent e) {
				repaint();
			}
			public void focusLost(FocusEvent event) {
				repaint();
			}
		});
		addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent event) {
				System.out.println("Key Pressed");
			}
		});
	}
	public boolean isFocusTraversable() {
		return true;
	}	
	public void paint(Graphics g) {
		Dimension size = getSize();
		g.setColor  (color);
		g.fill3DRect(2,2,size.width-4,size.height-4,true);

		if(getFrame().getFocusOwner() == this) {
			g.setColor(Color.black);
			g.drawRect(0,0,size.width-1,size.height-1);
		}
	}
	public Dimension getPreferredSize() {
		return new Dimension(100,100);
	}
    public Frame getFrame() {
		Component c = this;

        while((c = c.getParent()) != null) {
            if(c instanceof Frame)
                return (Frame)c;
        }
        return null;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?