수다닷컴

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

자바 그리기 관련 질문

Orange

2023.04.01

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

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

public CustomPanel()
{
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(400,250);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);

if (shape == SQUARE)
g.drawRect(Math.min(x1,x2), Math.min(y1,y2), Math.abs(x1-x2), Math.abs(y1-y2));
else if (shape == CIRCLE)
g.drawOval(Math.min(x1,x2), Math.min(y1,y2), Math.abs(x1-x2), Math.abs(y1-y2));
}
public void draw(int shapeToDraw)
{
shape = shapeToDraw;
}
}public class DrawPanel extends JFrame {
private JPanel buttonPanel;
private CustomPanel myPanel;
private JButton squareButton, circleButton;

public DrawPanel()
{
super (Draw Shapes);

myPanel = new CustomPanel();
myPanel.setBackground(Color.WHITE);

squareButton = new JButton(사각형 그리기);
squareButton.addActionListener (
new ActionListener(){
public void actionPerformed(ActionEvent event)
{
myPanel.draw(CustomPanel.SQUARE);
}
}
);
circleButton = new JButton(원 그리기);
circleButton.addActionListener (
new ActionListener(){
public void actionPerformed(ActionEvent event)
{
myPanel.draw(CustomPanel.CIRCLE);
}
}
);

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

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

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

public static void main(String args[])
{
DrawPanel application = new DrawPanel();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}그림판을 구현한 소스입니다... 2개의 버튼이 달린 그림판으로 [원그리기][사각형그리기]

각각의 버튼을 클릭하고 마우스 드래그 했을때 그 도형이 그려지는건데......ㅠㅠ

한개씩 밖에 안그려지네요.. [원그리기]로 타원그리고 [사각형그리기]클릭후 사각형그리면

원은 지워지구요......... 화면에 3개의 객체가 저장될수 있게 서큘러큐로 구현하라는데....

(세개의 도형을 그리고 네번째 도형을 그릴때 첫번째 도형이 지워지고.. 이런식으로..)
이벤트 생성되는 곳에 배열을 썼더니 컴파일은 되는데 실행하면 에러나구...ㅠㅠ도와주세여!!

꼭 원형큐를 이용하라구 해서 더 해결이 난감하다는....웅.... 며칠째 머리싸매구 있습니다...

신청하기





COMMENT

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

  • 빈길

    요즘은 학교다니기 참편한거 같아요 ^^; 저 학교다닐때는 레포트 해결하려고 선배나 친구들한테 사정했던 기억이.. 요즘은 네이버 지식인이나 사이트에 글올리면 해결되고.. ㅋ

  • 이름없음

    수욜반이신가? 이거 해결 보셨나여? ㅡㅡ;대략 난감..

  • 치에미

    헉 이거 우리학교 과제인데... 나랑 같은 과인가 부네 -_-;

번호 제 목 글쓴이 날짜
2695934 tr 속성값 (9) 새 2025-05-25
2695905 ASP로 개발됐을 때 css가 달라져요 ㅠㅠ (4) 슬아라 2025-05-24
2695878 form을 이용한 다른 페이지로 넘기는 방법을 알려주세요 (1) 핫파랑 2025-05-24
2695844 저기 암호화 및 복호화 프로그램.. 만들어볼려는대 (2) 한빛 2025-05-24
2695814 [질문] PDA에서 애플릿이 가능한가요? (1) 봄시내 2025-05-24
2695785 웹 설정 도와줄분 화이트캣 2025-05-23
2695730 갑자기 기억이 안나는데 accesskey 속성.. 빛나라 2025-05-23
2695702 [질문] Java 버전 차이에 의한 오류?!! (2) 검사 2025-05-23
2695672 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) 뽀그리 2025-05-22
2695647 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) 아빠몬 2025-05-22
2695586 IFRAME 캐싱 질문 봄나비 2025-05-22
2695498 [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; 터1프한렩 2025-05-21
2695468 자바랑 이클립스에서요.. 스킬 2025-05-21
2695375 Mysql 연동하는 자바 질문있습니다. 아리솔 2025-05-20
2695319 파워포인트 파일을 저장할 수 있을까요? 시윤 2025-05-19
2695289 [질문]Tween 값의 정도를 알고 싶습니다. 타마 2025-05-19
2695238 c 와 c++의 시작 (10) ChocoHoilc 2025-05-18
2695215 탑메뉴의 repeat-x .배경이 두가지에요ㅠ ㅠ 널위해 2025-05-18
2695187 자바스크립트와 자바의 import에 관해서 질문드려요 (1) 무슬 2025-05-18
2695116 테마 문의 (해당 사이트와 같은 테마 혹은 플러그인) Sweet 2025-05-17
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

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