Я хочу нарисовать холст, который будет перемещаться на Jpanel. То есть, когда пользователь нажимает на холст и перетаскивает его, он должен перейти в новый позит. Я реализовал MouseMotionListener, но я понятия не имею, что включить внутрь, чтобы заставить холст двигаться в соответствии с требованиями. вот класс 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);
}
}
NB: просьба не предполагать, что я использую JPanel am для использования холста.
Тогда вы будете [* Смешение тяжеловесных и легкие компоненты *] (http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html). – trashgod