Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用processEvent(AWTEvent e)替换handleEvent(事件e)_Java - Fatal编程技术网

Java 用processEvent(AWTEvent e)替换handleEvent(事件e)

Java 用processEvent(AWTEvent e)替换handleEvent(事件e),java,Java,用processEvent替换不推荐使用的函数handleEvent时,我找不到转换代码的方法。有人能帮忙吗 如何在processEvent上获取x、y和事件id 以下是我的功能: public boolean handleEvent(Event evt) { if (evt.target == this) { // move floatting text zone if (dragingTextZone == true) {

processEvent
替换不推荐使用的函数
handleEvent
时,我找不到转换代码的方法。有人能帮忙吗

如何在processEvent上获取x、y和事件id

以下是我的功能:

public boolean handleEvent(Event evt) {

      if (evt.target == this) {
        // move floatting text zone
        if (dragingTextZone == true) {
            this.posStr.x = evt.x;
            this.posStr.y = evt.y;
            repaint(this.posStr.x,
                    this.posStr.y,
                    1000,
                    (int) (_imageViewer.getCurrent_font().getSize() * _imageViewer.getScalefactor()));

            if (evt.id == Event.MOUSE_DOWN) {
                dragingTextZone = false;
                addTextToPicture();
            }
        }

        if (evt.id == Event.MOUSE_DRAG) {

            if (dragitem.isDragging()) {
                repaint(dragitem.getX(),
                        dragitem.getY(),
                        dragitem.getWidth(),
                        dragitem.getHeight());
                dragitem.drag(evt.x, evt.y);
                repaint(dragitem.getX(),
                        dragitem.getY(),
                        dragitem.getWidth(),
                        dragitem.getHeight());
            }
        }
        else {
            if (evt.id == Event.MOUSE_UP) {
                // setting crop zone
                if (dragingCropZone || dragingMask) {
                    endDrag(evt);
                }
                else if (dragingLine) {
                    addLineToPicture();
                    endDrag(evt);
                }
            }
            if (evt.id == Event.MOUSE_DOWN) {
                if (getEditMode() == EDTMODE_ALL) {
                    if (evt.modifiers == Event.CTRL_MASK) {
                        startDragHighLight(evt);
                    }
                    else if (evt.modifiers == Event.ALT_MASK) {
                        startDragLine(evt);
                    }
                    else {
                        if (clickedOnFocusedItem(evt)) {
                            startDragMask(evt);
                        }
                    }
                }
            }
        }
    }

    return super.handleEvent(evt); // This passess the mouse click back up to Applet
}

谢谢,

而不是一个包含所有内容的
事件
类,新的
AWTEvent
方法(相对而言,它从Java 1.1开始就存在)是为了不同的目的而有不同的
AWTEvent
子类。在您的例子中,它是您感兴趣的
MouseEvent
子类,因此您需要调用
enableEvents(AWTEvent.MOUSE\u EVENT\u MASK | AWTEvent.MOUSE\u MOTION\u EVENT\u MASK)
来启用相关事件的处理,然后重写
processMouseEvent
processMouseMotionEvent
来进行处理

但是处理事件的首选方法不是重写
进程*
方法,而是注册单独的侦听器对象。在您的例子中,您将创建另一个类(可能是主类中的内部类),它是
MouseAdapter
的子类,重写其中的相关事件挂钩方法,然后通过调用主组件上的
addMouseListener
addMouseMotionListener
来注册适配器类的实例


有大量的文档(和其他地方)关于如何在AWT或Swing应用程序中实现事件处理。

您能提供您所拥有的和正在尝试执行的操作的代码示例吗?有一个很好的编辑按钮,您可以使用它编辑问题并包含代码示例。@user2274161我在上一段中给出的链接中有几个示例,以及web上其他地方的许多AWT/Swing教程。堆栈溢出不是让其他人为您编写所有代码的地方-看一些教程,尝试自己编写代码,如果您陷入困境,请务必提出另一个问题,说明您尝试了什么,并寻求帮助调试代码。例如,我只是问不使用java编写代码bcz im new。谢谢你的时间和帮助。当做