java - 使用鼠标绘制矩形

标签 java events swing

<分区>

Possible Duplicate:
How to draw a rectangle on a java applet using mouse drag event and make it stay

你好。 我想知道如何使用 mousedragged 事件绘制矩形。我知道我必须使用 Point 类记录鼠标位置。我需要在 paint 方法中实现 paint 函数并在 mousedragged 中调用它,或者我的 paint 代码应该在 mousedragged 事件中实现?

此时我把我的代码放在了鼠标拖动事件中。这是代码:

@Override
    public void mousePressed(MouseEvent e)
    {
        super.mousePressed(e);
        System.out.println("f.getGlassPane() mousePressed");
        if(e.getButton() == MouseEvent.BUTTON1)


        frame.getGlassPane().setVisible(true);

        startPoint=e.getPoint();

        Graphics2D g = null;
            Graphics2D g2 = (Graphics2D) g;
        Rectangle2D prostokat = new Rectangle2D.Double();
        prostokat.setFrameFromDiagonal(e.getPoint().x, e.getPoint().y,startPoint.x, startPoint.y);
        g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5F));
        g2.setColor(Color.BLUE);
        g2.fill(prostokat);
        g2.draw(prostokat);

    }

    });

最佳答案

您还需要处理 mouseReleasedmouseDragged,如 here 所示和 here .

关于java - 使用鼠标绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017839/

相关文章:

java - 另一个谷歌地图 v2 无法充气,请

java - Spnego keytab 测试给出了 java 安全异常

c# - 我应该使用 EventHandler<T> 和/或 EventArgs 委托(delegate)模式吗?

linux - 如何在 Linux 中检测智能卡插入或移除事件

java - 如何创建游戏运行时显示在按钮左角的重启按钮?

java - 组 java 组件

java - 更改 ContentPane 的背景颜色

java - Spring中是先创建bean还是先通过构造函数创建实例

delphi - 如何在Delphi中捕获DBGrid中的滚动事件

java - 使用 JFileChooser 选择 srt 文件并读取它