728x90
반응형
(3) Color와 Font
▷ Graphics의 setColor() 메소드로 Color를 설정하면 해당 색 상으로 문자, 선, 도형이 그려짐
◎ Color 클래스가 표현할 수 있는 13가지 색깔 상수
Color.BLACK | Color.WHITE | Color.RED |
Color.GREEN | Color.BLUE | Color.GRAY |
Color.DARK_GRAY | Color.LIGHT_GRAY | Color.CYAN |
Color.MAGENTA | Color.ORANGE | Color.PINK |
Color.YELLOW |
▷ 13가지 상수 이외의 다른 색상을 얻고 싶다면 R(Red), G(Green), B(Blue ) 값을 이용해서 Color 객체를 직접 만들면 됨
▶ RGB값은 각각 0~255 사이의 값을 입력
Color color = new Color(100, 200, 50); g.setColor(color);
▷ Graphics의 drawString()으로 그려지는 글자의 기본 색상은 검정색, 12 사이즈, Dialog 폰트
▷ Graphics의 setFont() 메소드를 이용하면 폰트 속성을 변경가능하며 매개값은 Font 객체
Font font = new Font(String name, int style, int size);
◎ 폰트 스타일 종류
Font.PLAIN (보통 글자) | Font.BOLD (굵은 글자) | Font.ITALIC(기울인 글자) |
◎ 글자의 Color와 Font를 변경하는 예제
import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class ColorFontExample extends JFrame { // 메인 윈도우 설정 public ColorFontExample() { setTitle("색상과 폰트"); getContentPane().add(new MyCanvas(), BorderLayout.CENTER); setSize(300, 200); } // Canvas 클래스 선언 public class MyCanvas extends Canvas { public void paint(Graphics g) { // Color 변경 g.setColor(Color.BLUE); // Font 변경 g.setFont(new Font("돋움체", Font.BOLD | Font.ITALIC, 30)); // 글자 드로잉 g.drawString("Color and Font", 20, 100); } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { ColorFontExample jFrame = new ColorFontExample(); jFrame.setVisible(true); } }); } }
(4) 기본 도형 그리기
▷ 기본 도형에는 선, 원, 타원, 사각형, 호 등이 있음
▷ drawXXX()와 fillXXX()의 차이점은 선만 그리는지 내부를 채우는 것인지에 따라 구분됨
1) 선을 그리는 메소드
2) 사각형을 그리는 메소드
3) 원 또는 타원을 그리는 메소드
4) 모서리가 둥근 사각형을 그리는 메소드
5) 입체 사각형을 그리는 메소드
draw3DRect(int x, int y, int width, int height, boolean raised) fill3DRect(int x, int y, int width, int height, boolean raised)
6) 호를 그리는 메소드
7) 다각형을 그리는 메소드
8) 영역을 지우는 메소드
clearRect(int x, int y, int width, int height)
◎ Graphics 메소드를 이용해 Canvas 그림 그리기 예제
import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class ShapeExample extends JFrame { // 메인 윈도우 설정 public ShapeExample() { setTitle("도형 그리기"); getContentPane().add(new MyCanvas(), BorderLayout.CENTER); setSize(400, 300); } // Canvas 클래스 선언 public class MyCanvas extends Canvas { public void paint(Graphics g) { // 원 그리기 g.drawOval(50, 50, 50, 50); g.setColor(Color.GREEN); g.fillOval(50, 100, 50, 50); // 선 그리기 g.setColor(Color.RED); g.drawLine(50, 100, 100, 150); g.drawLine(150, 50, 50, 150); // 사각형 그리기 g.setColor(Color.BLUE); g.drawRoundRect(200, 50, 120, 80, 30, 30); g.setColor(Color.YELLOW); g.drawRoundRect(250, 100, 120, 80, 30, 30); // 다각형 그리기 g.setColor(Color.ORANGE); g.fillPolygon(new int[] {50,100,150,200}, new int[] {250,200,200,250},4); // 호 그리기 g.setColor(Color.CYAN); g.fillArc(250, 200, 100, 100, 45, 120); } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { ShapeExample jFrame = new ShapeExample(); jFrame.setVisible(true); } }); } }
Canvas와 Graphics의 메소드를 이용해 Color와 Font를 변경하거나 도형을 그릴 수 있도록 코드를 구현해보았습니다.
이것들을 이용하면 게시판을 예쁘게 꾸미는 것에 적용할 수 있겠어요!!
더 많은 기능들에 대해서 배워볼게요~!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'BackEnd > Java' 카테고리의 다른 글
[java] 입출력(BufferedReader, BufferedWriter, StringBuilder) (0) | 2023.02.26 |
---|---|
[java]이것이 자바다 부록 Java UI 13-2 (Swing을 이용한 2D 그래픽스, Color와 Font) (0) | 2023.02.26 |
[java]이것이 자바다 부록 Java UI 13 (Swing을 이용한 2D 그래픽스) (0) | 2023.02.26 |
[java]이것이 자바다 부록 Java UI 12-3 (Swing을 이용한 색상 다이얼로그) (1) | 2023.02.21 |
[java]이것이 자바다 부록 Java UI 12-2 (Swing을 이용한 파일 다이얼로그) (0) | 2023.02.21 |