Jpanel에서 움직일 수있는 캔버스를 그려야합니다. 사용자가 캔버스를 클릭하고 드래그하면 새로운 위치로 이동해야합니다. MouseMotionListener를 구현했지만 내부에 포함 시켜서 requierements 당 캔버스를 움직이게하는 방법을 모른다. 다음은 DisplayCanvas 클래스입니다.Jpanel에 움직일 수있는 캔버스를 그립니다.
class DisplayCanvas extends Canvas
{
public DisplayCanvas()
{
setBounds(20, 40, 300, 300);
setBackground(Color.white);
}
}
class shape extends JFrame implements MouseMotionListener{
static JPanel panel;
static Container contentpane;
static DisplayCanvas canvas;
shape()
{
canvas=new DisplayCanvas();
canvas.addMouseMotionListener(this);
panel= new JPanel();
panel.setBounds(20,20,250,140);
panel.setLayout(null);
contentpane = getContentPane();
contentpane.add(canvas);
contentpane.add(panel);
}
@Override
public void mouseDragged(MouseEvent e) {}
@Override
public void mouseMoved(MouseEvent arg0) {}
}
이것은 테스트 방법입니다.
public class display
{
static JFrame frame;
public static void main(String[] args)
{
frame=new shape();
frame.setBounds(380, 200, 500, 400);
frame.setTitle("SHAPE AND COLOR");
frame.setVisible(true);
}
}
주의 : 캔버스를 사용하는 데 필요한 JPanel을 사용하지 마십시오.
이됩니다 (코드가 제대로 분리 측면 리팩토링 할 필요가)이 작업을 할 수 있습니다 매우 기본적인 방법을 설명한다 [* 중량 및 경량의 성분을 혼합 *] (http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html). – trashgod