당신은 맞다. MouseWheel 이벤트는 SWT 용 TeeChart Java에서 시작되었지만 Swing 용 TeeChart Java에서는 발생하지 않았습니다.
공용 추적 장치 (here)에 추가했으며 이미 다음 유지 관리 릴리스를 위해 수정했습니다.
--- a/Swing/src/com/steema/teechart/TChart.java
+++ b/Swing/src/com/steema/teechart/TChart.java
@@ -21,6 +21,8 @@ import java.awt.Toolkit;
import java.awt.datatransfer.*;
import com.steema.teechart.events.FrameworkMouseEvent;
+import com.steema.teechart.events.FrameworkMouseWheelEvent;
+
import java.awt.event.*;
import java.beans.*;
import java.io.*;
@@ -1405,7 +1407,16 @@ public class TChart extends JComponent implements Serializable, IChart,
e.getX(),e.getY(),e.getClickCount(),
true,e.getButton());
}
-
+
+ private FrameworkMouseWheelEvent getFrameworkEvent(MouseWheelEvent e)
+ {
+ return new FrameworkMouseWheelEvent(e.getComponent(), e.getID(),
+ e.getWhen(), e.getModifiers(),
+ e.getX(), e.getY(), e.getClickCount(),
+ true, e.getScrollType(),
+ e.getScrollAmount(), e.getWheelRotation());
+ }
+
protected void processMouseEvent(MouseEvent e) {
chart.cancelMouse = false;
@@ -1439,6 +1450,15 @@ public class TChart extends JComponent implements Serializable, IChart,
protected void processMouseWheelEvent(MouseWheelEvent e) {
+ chart.cancelMouse = false;
+ if (_allowMouse) {
+ FrameworkMouseWheelEvent fwe = getFrameworkEvent(e);
+
+ if (!chart.cancelMouse) {
+ super.processMouseWheelEvent(fwe);
+ }
+ }
}
private boolean _allowMouse = true;
--
그리고 새로운 클래스 : 소스가있을 경우
은, 수정은 TChart.java에서 작은 변화의 몇 구성 FrameworkMouseWheelEvent.java : 도움을 구하고
package com.steema.teechart.events;
import java.awt.Component;
public class FrameworkMouseWheelEvent extends java.awt.event.MouseWheelEvent {
/**
*
*/
private static final long serialVersionUID = 1L;
public FrameworkMouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount,
boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation) {
super(source, id, when, modifiers, x, y, clickCount, popupTrigger, scrollType, scrollAmount, wheelRotation);
}
public FrameworkMouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs,
int yAbs, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation) {
super(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, scrollType, scrollAmount, wheelRotation);
}
public FrameworkMouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs,
int yAbs, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation,
double preciseWheelRotation) {
super(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger, scrollType, scrollAmount, wheelRotation,
preciseWheelRotation);
}
}
질문을해야합니다 ** 원하는 동작 **, ** 특정 문제 또는 오류 ** 및 ** 문제를 재현하는 데 필요한 가장 짧은 코드 **를 포함하십시오. 분명한 문제 설명이없는 질문은 다른 독자에게 유용하지 않습니다. 참조 : [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve). –
원하는 behivour : MouseWheelMoved 이벤트 발생 그래서 내 문제가 명확합니다. 곧 재현 가능한 코드 예제를 추가하겠습니다. –
@ShouRisha 'contentPane'유형은 무엇입니까? SWT를 쓰지 않고 Swing – Baz