Please Enable JavaScript!
Gon[ Enable JavaScript ]

자바(Java) AWT – Canvas 컨트롤의 간단한 사용예제

자바(JAVA)
반응형

자바(Java) AWT – Canvas 컨트롤의 간단한 사용예제

 

환경 : Eclipse Mars, Android 4.2.2

 

Canvas 컨트롤은 그림을 그리는 칠판 역할을 합니다. 여기에 라인을 긋는다던지 이미지를 올리고 각종 도형을 그려 넣을수 있습니다. 이번 예제는 Canvas 클래스를 상속받아 클래스를 하나 만들어 Canvas 색깔을 채우고 텍스트와 라인을 그어보도록 하겠습니다.

 

Canvas 클래스를 상속받아 사용자 정의 클래스를 만듭니다. 그리고 생성자에서 setBackground() 함수를 이용해 Canvas 배경색을 셋팅합니다.

 

class MyCanvas extends Canvas {

	public MyCanvas() {
		setBackground(Color.BLUE);
	}
}

 

화면이 로딩될 때 Canvas 클래스의 paint() 함수가 호출됩니다. 여기에 초기 로딩시 하고 싶은 기능을 넣으면 되겠죠. 예제에서는 Grpahics2D 객체의 drawString() 함수를 이용해 Canvas 에 글을 씁니다. 이글에 대한 폰트와 색깔을 셋팅합니다.

 

Graphics2D g2;
g2 = (Graphics2D) g;
g2.setColor(Color.WHITE);
Font font = new Font("Serif", Font.PLAIN, 13);
g2.setFont(font);
g2.drawString("Canvas 컨트롤에 텍스트 넣기", 10, 20);

 

다음은 라인을 긋는 소스입니다. Draw() 함수에 인수로 Line2D 객체를 넘기게 되면 라인을 그릴수 있습니다. 라인 색깔을 빨간색으로 한후 그려넣었습니다.

 

g2.setColor(Color.RED);
g2.draw(new Line2D.Double(30, 30, 60, 100));

 

아래는 위에서 설명한 Canvas 기능의 전체 소스 입니다.


import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Line2D;

public class AwtCanvasControl {
	private Frame mainFrame;
	private Label headerLabel;
	private Panel controlPanel;

	public AwtCanvasControl() {
		prepareGUI();
	}

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

	private void prepareGUI() {
		// Frame 에 대한 셋팅
		mainFrame = new Frame("Java AWT 샘플");
		mainFrame.setSize(400, 400);
		mainFrame.setLayout(new GridLayout(2, 1));
		mainFrame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent windowEvent) {
				System.exit(0);
			}
		});

		// 상단에 있는 라벨
		headerLabel = new Label();
		headerLabel.setAlignment(Label.CENTER);
		headerLabel.setText("Control Test : Choice Control");

		controlPanel = new Panel();

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

	private void showControl() {
		controlPanel.setLayout(new GridLayout(1, 1, 0, 0));

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

	class MyCanvas extends Canvas {

		public MyCanvas() {
			setBackground(Color.BLUE);
		}

		public void paint(Graphics g) {
			Graphics2D g2;
			g2 = (Graphics2D) g;
			g2.setColor(Color.WHITE);
			Font font = new Font("Serif", Font.PLAIN, 13);
			g2.setFont(font);
			g2.drawString("Canvas 컨트롤에 텍스트 넣기", 10, 20);
			
			g2.setColor(Color.RED);
		    g2.draw(new Line2D.Double(30, 30, 60, 100));
		}
	}
}

 

Canvas 기능을 구현해서 실행한 화면입니다. 아래부분에 폰트와 색깔이 적용된 글자와 라인이 보이시죠.

 

자바(Java) AWT – Canvas 컨트롤의 간단한 사용예제

 

반응형
Posted by 녹두장군1
,