낙서 판: 간단한 그림판 개발 (Java)
1. 내용 설명
간단한 그림판 프로그램은 사용자가 마우스를 이용하여 화면에 그림을 그릴 수 있게 하는 애플리케이션입니다. 이 프로그램은 Java를 이용하여 개발되며, 사용자 인터페이스(UI) 구성, 마우스 이벤트 처리, 그리기 기능 등을 포함합니다.
2. 프로그램 간 사용 함수 설명
- init(): 프로그램 초기화, UI 설정
- paintComponent(Graphics g): 화면에 그림을 그리는 기능
- mousePressed(MouseEvent e): 마우스 버튼이 눌렸을 때 이벤트 처리
- mouseReleased(MouseEvent e): 마우스 버튼이 놓였을 때 이벤트 처리
- mouseDragged(MouseEvent e): 마우스 드래그 이벤트 처리
3. 코딩 내용
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class EnhancedSimplePaint extends JFrame {
private int prevX, prevY; // 이전 마우스 좌표
private Color backgroundColor = Color.WHITE; // 배경색 초기 설정
public EnhancedSimplePaint() {
setTitle("개선된 간단한 그림판");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
DrawPanel drawPanel = new DrawPanel();
contentPane.add(drawPanel);
contentPane.setBackground(backgroundColor); // 배경색 설정
setVisible(true);
}
class DrawPanel extends JPanel {
public DrawPanel() {
setPreferredSize(new Dimension(800, 600)); // 패널 크기 설정
setBackground(backgroundColor); // 배경색 적용
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
prevX = e.getX();
prevY = e.getY();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Graphics g = getGraphics();
g.drawLine(prevX, prevY, e.getX(), e.getY());
prevX = e.getX();
prevY = e.getY();
}
});
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// 여기에 추가적인 그리기 기능 구현 가능
}
}
4. 전문용어
- Java: 객체 지향 프로그래밍 언어
- JFrame: 윈도우 창을 생성하는 클래스
- Container: 컴포넌트를 담는 공간
- Graphics: 그래픽 컨텍스트, 그리기 작업 수행
- MouseEvent: 마우스와 관련된 이벤트
- MouseAdapter, MouseMotionAdapter: 마우스 이벤트 리스너
5. 라이브러리 추가 및 실행 방법
Java Swing 라이브러리를 사용합니다. 표준 Java 개발 키트(JDK)에 포함되어 있으므로 별도의 라이브러리 추가는 필요하지 않습니다. 이 코드를 Java IDE(예: IntelliJ, Eclipse)에서 실행하거나, 명령 줄을 사용하여 컴파일하고 실행합니다.
컴파일
javac -encoding UTF-8 EnhancedSimplePaint.java
실행
java EnhancedSimplePaint
'자바(java)' 카테고리의 다른 글
사이트 북마크 관리: 웹 사이트 주소를 저장하고 관리할 수 있는 북마크 앱을 개발합니다. (0) | 2023.12.20 |
---|---|
골드바흐 추측 검증기: 골드바흐 추측을 검증하는 프로그램을 작성합니다. (0) | 2023.12.20 |
윈도우 알람 시계 애플리케이션: 알람을 설정하고 시간에 맞춰 알람을 울리는 앱을 설계합니다. (0) | 2023.12.20 |
투표 통계 분석: 투표 결과를 분석하고 그래프로 시각화하여 표시합니다. (0) | 2023.12.20 |
퀴즈 게임: 다양한 주제의 퀴즈를 제공하고 사용자의 정답을 평가하는 게임을 만듭니다. (0) | 2023.12.20 |