저는 처음 그래픽 프로그램 인 자바의 그래픽에 익숙합니다. 회화 프로그램과 같은 마우스 수신기와 마우스 모션 수신기를 사용하여 모든 라인, 직사각형, 타원을 만들 수 있지만 그리기 삼각형을 그리는 데 문제가 있습니다. 다각형을 사용하지만 그것은 매우 복잡 .I 정말이 문제 .ANY 도움이 될 것입니다 해결하는 방법을 이해하는 데 도움을 필요로의합니다 appreciated.that 내가 새로운 일을 시도하기 때문에 바보 내 코드의 모든 초마우스를 사용하여 삼각형 그리기
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
/* *
*
* @author D S
*/
public class GUI extends JPanel {
int[] x;
int[] y;
Graphics2D graph;
public GUI() {
Handler handler = new Handler();
this.addMouseListener(handler);
this.addMouseMotionListener(handler);
}
public class Handler implements MouseListener, MouseMotionListener {@Override
public void mouseClicked(MouseEvent me) {
throw new UnsupportedOperationException("Not supported yet.");
//
To change body of generated methods, choose Tools | Templates.
}
@Override
public void mousePressed(MouseEvent e) {
x[0] = e.getX();
y[0] = e.getY();
repaint();
}
@Override
public void mouseReleased(MouseEvent e) {
x[1] = e.getX();
x[2] = e.getX();
y[1] = e.getY();
y[2] = e.getY();
graph.drawPolygon(x, y, x.length);
repaint();
}
@Override
public void mouseEntered(MouseEvent me) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseExited(MouseEvent me) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseDragged(MouseEvent e) {
x[1] = e.getX();
x[2] = e.getX();
y[1] = e.getY();
y[2] = e.getY();
repaint();
}
@Override
public void mouseMoved(MouseEvent me) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
@Override
public void paint(Graphics g) {
graph.setStroke(new BasicStroke(2));
graph.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(Color.BLUE);
g.drawPolygon(x, y, x.length);
}
}
Wooowww .... 어떻게 시합 어떤 ident. –
'Path2D'와'AffineTransform'과 같은 것을 사용하여 크기를 조절하고 회전 시키면 좋을 것입니다. 그러나 좀 더 고급 스러울 것입니다. – MadProgrammer
또한 빈 줄 대부분을 지우는 것은 어떨까요? ! –