수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

[질문]자바 문제 풀다가 안풀려 질문 드립니다

하루키

2023.04.01

일단 코드는 간단한 그림판을 만들어 그림을 그리는 건데... JPanel 을 전용그림판으로 써서 그리는겁니다.(타원그리는 버튼을 누르면 타원이 그려지고, 사각형 버튼을 누르면 사각형이 그려지는)

문제는 그림판에 그림이 3개까지 그려지게 하는 겁니다. 4번째 그림을 그리면 1번째것이 지워지는 그러한 그림판을 만드는것이 목적입니다. circular queue를 써야 하는것까지는 알겠는데 문제는 소스에 어떻게 적용시켜야 할지 모르겠네요.. --; 도움이 될만한 tip좀 주세요.

코드는 밑에..

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DrawShape extends JPanel {
public static final int CIRCLE = 1, SQUARE = 2;
private int x1, y1, x2, y2;
private int shape;

public DrawShape()
{
addMouseListener(
new MouseAdapter() {
public void mousePressed(MouseEvent event)
{
x1 = event.getX();
y1 = event.getY();
}

public void mouseReleased(MouseEvent event)
{
x2 = event.getX();
y2 = event.getY();
repaint();
}
}
);

addMouseMotionListener(
new MouseMotionAdapter() {
public void mouseDragged(MouseEvent event)
{
x2 = event.getX();
y2 = event.getY();
repaint();
}
}
);
}

public Dimension getPreferredSize()
{
return new Dimension(150, 100);
}

public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(shape == CIRCLE)
g.drawOval(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x1-x2), Math.abs(y1-y2));
else if(shape == SQUARE)
g.drawRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x1-x2), Math.abs(y1-y2));
}
public void draw(int shapeToDraw)
{
shape = shapeToDraw;
//repaint();
}
}

----------------------------------------------------------------

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DrawTest extends JFrame {
private JPanel buttonPanel;
private DrawShape dsPanel;
private JButton circleButton, squareButton;

public DrawTest()
{
super(DrawTest Test);

dsPanel = new DrawShape();
dsPanel.setBackground(Color.WHITE);

squareButton = new JButton(Square);
squareButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event)
{
dsPanel.draw(DrawShape.SQUARE);
}
}
);

circleButton = new JButton(Circle);
circleButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event)
{
dsPanel.draw(DrawShape.CIRCLE);
}
}
);

buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 2));
buttonPanel.add(circleButton);
buttonPanel.add(squareButton);

Container container = getContentPane();
container.add(dsPanel, BorderLayout.CENTER);
container.add(buttonPanel, BorderLayout.SOUTH);

setSize(450, 300);
setVisible(true);
}

public static void main(String args[])
{
DrawTest application = new DrawTest();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 유키

    길더라도 한번 도와주세요~^^*

번호 제 목 글쓴이 날짜
2697487 html5 css3 학원 추천좀해주세요 (1) 예그리나 2025-06-08
2697459 이런 질문도 답변해주실지는 모르겠습니다만 병특에 관한 질문입니다. 승아 2025-06-08
2697422 가운데 정렬하는 방법좀 흑흑흑... (3) 목련 2025-06-07
2697395 홈페이지 기본구조에 대해서... (6) 모든 2025-06-07
2697366 에..조금 짜보고 다시 질문입니다. (2) 나샘 2025-06-07
2697333 li 가운데 정렬.....도와 주세용... (7) 초고리 2025-06-07
2697284 이미지를 흐리게 (2) 난새 2025-06-06
2697258 VC++ 6.0(studio)을 깔면서 재미가 붙었는데..ㅠㅠ (4) 앵겨쪼 2025-06-06
2697228 WorkFlow가 궁금합니다.. 다들 어떻게 하시는지.. (1) 애기 2025-06-06
2697174 button 태그와 input 태그의 type 속성을 사용한거와 차이 (1) 여름 2025-06-05
2697149 익스플로러에서 이미지로딩이 느려지는건지..깨져서 나옵니다. (4) 든솔 2025-06-05
2697122 호환성질문 (5) 미즈 2025-06-05
2697066 웹에서 다른이름으로 저장 할때 파일 이름 저장하는 방법은? 코이 2025-06-04
2697043 position:absolute; 로 하면 사라져 버리는 이유 ㅠㅠ (3) 풍란 2025-06-04
2697016 테이블 thead tbody 질문 아란 2025-06-04
2696989 contact us 페이지는 dl로 작성하는게 좋을까요? (4) 파라 2025-06-03
2696964 img 태그 질문드려요 (9) 연블루 2025-06-03
2696907 [질문] 올플래시 메뉴 고정할수 있는[수정] (4) 맨삶이 2025-06-03
2696875 책구입 후 따라하다가 ShortCode Ultimate 오류 가지등 2025-06-02
2696844 css 마우스 오버시 display:block되는 영역 질문드립니다 ㅠㅠ (2) 갅쥐누뉨 2025-06-02
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com