그래픽 모델링 도구를 구현하려고합니다. 마우스에마우스 리스너 인터페이스 및 그림
빨간색 정점 생성을 클릭합니다. 한 정점에서 다른 정점으로 마우스를 드래그하면 선을 그려야합니다. 이것이 내가 성취하고자하는 바입니다. 하지만 내 코드는 효과적으로하지 않습니다. 내 코드와 문제 mouseClickedEvent가 발생 내가 직면하고있는 문제는 그러나
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
public class NewClass extends JPanel {
Point source,dest;
BufferedImage image;
Graphics2D imageGraphics;
NewClass(){
image= new BufferedImage(400,400, BufferedImage.TYPE_INT_ARGB);
imageGraphics=image.createGraphics();
this.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
if(e.getButton() == MouseEvent.BUTTON1){
Point p=e.getPoint();
paintPoint(p);
}
}
@Override
public void mousePressed(MouseEvent e){
if(e.getButton() == MouseEvent.BUTTON1){
source=e.getPoint();
}
}
@Override
public void mouseReleased(MouseEvent e){
if(e.getButton() == MouseEvent.BUTTON1){
dest=e.getPoint();
paintLine();
}
}
});
}
public void paintPoint(Point r){
imageGraphics.setColor(Color.red);
imageGraphics.fillOval(r.x,r.y,5,5);
repaint();
}
public void paintLine(){
imageGraphics.setColor(Color.black);
imageGraphics.drawLine(source.x,source.y,dest.x,dest.y);
repaint();
}
}
이되어 다음, 그것을 누르면뿐만 아니라 발표 생성합니다. 특히 세 개 이상의 꼭지점이 사용되면 잘못된 선이 생성됩니다.
꼭지점을 눌러서 다음 꼭지점으로 이동 한 다음 그 지점에서 놓아야 만 선을 그립니다.
어떻게이 문제를 해결할 수 있습니까?
이 아이디어가 잘못되었습니다. 스윙에서 페인팅하기에 적합한 방법이 아닙니다. (JAva6/7) – mKorbel
@mKorbel, 'a.m.'은 무엇을 의미합니까? – Sage
@Sage a.m. == 위에서 언급 한 (합법적 인 blablabla) – mKorbel