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。谢谢你的时间和帮助。当做