使用徒手绘图撤消和移动功能

时间:2012-11-27 08:18:12

标签: java swing animation graphics paintcomponent

我目前正在尝试编写一个Java应用程序,它允许徒手绘制,然后移动和删除每个绘制的波形。

我猜我最好的选择是每次点击并拖动创建一个单独的实体,但我不知道如何实现这一点。到目前为止,我只有一个小的JFrame,它将在Oracle教程的帮助下显示“画笔”,但甚至不是这个画笔绘制的线条。

class MyPanel extends JPanel {

    private int ovalX = 50;
    private int ovalY = 50;

    public MyPanel() {
        setBorder(BorderFactory.createLineBorder(Color.black));

        addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                moveSquare(e.getX(),e.getY());
            }
        });

        addMouseMotionListener(new MouseAdapter() {
            public void mouseDragged(MouseEvent e) {
                moveSquare(e.getX(),e.getY());
            }
        });
    }

    private void moveSquare(int x, int y) {
        int OFFSET = 1;
        if ((ovalX!=x) || (ovalY!=y)) {
            ovalX=x;
            ovalY=y;
            repaint();
        } 
    }

    public Dimension getPreferredSize() {
        return new Dimension(250,200);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);       


        g.setColor(Color.BLACK);
        g.fillOval((ovalX - 5),(ovalY - 5),10,10);
    }  
}

我不确定如何继续。我应该首先使用一些常规教程吗?如果是这样,关于什么主题?

1 个答案:

答案 0 :(得分:3)

对于不同的主题,很少有帮助。一些核心/基本的将包括

我建议你需要了解

我会抛出Creating a GUI With JFC/Swing,因为它讨论了诸如键绑定和鼠标侦听器之类的事情。

我也熟悉Working with Images毫无疑问你也想要保存和加载图像