使用手绘撤消和移动功能



我目前正在尝试编写一个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);
    }  
}

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

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

  • 执行自定义绘画
  • 2D 图形
  • 在AWT和Swing中绘画

我建议你需要欣赏

我将抛出使用 JFC/Swing 创建 GUI 讨论键绑定和鼠标侦听器之类的内容。

我也熟悉使用图像,

因为毫无疑问,您也希望保存和加载图像

最新更新