Hey, ich benutze JNativeHook.
Um diesen globalen KeyListener zu benutzen (so wie ich es verstehe) wird er selbst als Objekt initalisiert.
Also wird auch die erste Zeile immer wieder "aktiviert".
Naja mein Problem ist, dass wenn ich aus einer anderen Klasse die setActivated() Funktion benutze, hat das keinen Einfluss, da durch die erste Zeile eh wieder auf false gesetzt wird.
Wie bekomme ich es hin, dass sie einen Einfluss hat, sodass nativeMousePressed() nur ausgeführt wird wenn eine andere Klasse das so will?
Ich fühl mich echt dumm das zu fragen aber ich verzweifle daran jetzt schon für 4 Stunden
Um diesen globalen KeyListener zu benutzen (so wie ich es verstehe) wird er selbst als Objekt initalisiert.
Also wird auch die erste Zeile immer wieder "aktiviert".
Naja mein Problem ist, dass wenn ich aus einer anderen Klasse die setActivated() Funktion benutze, hat das keinen Einfluss, da durch die erste Zeile eh wieder auf false gesetzt wird.
Wie bekomme ich es hin, dass sie einen Einfluss hat, sodass nativeMousePressed() nur ausgeführt wird wenn eine andere Klasse das so will?
Ich fühl mich echt dumm das zu fragen aber ich verzweifle daran jetzt schon für 4 Stunden
Java:
package tools;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.mouse.NativeMouseEvent;
import org.jnativehook.mouse.NativeMouseListener;
public class MouseListenerTool implements NativeMouseListener {
boolean activated;
public void globalScreen() {
// Clear previous logging configurations.
LogManager.getLogManager().reset();
// Get the logger for "org.jnativehook" and set the level to off.
Logger logger = Logger.getLogger(GlobalScreen.class.getPackage().getName());
logger.setLevel(Level.OFF);
GlobalScreen.addNativeMouseListener(new MouseListenerTool());
try {
GlobalScreen.registerNativeHook();
} catch (NativeHookException e) {
e.printStackTrace();
}
}
@Override
public void nativeMouseClicked(NativeMouseEvent nativeEvent) {
}
@Override
public void nativeMousePressed(NativeMouseEvent nativeEvent) {
// Ist false wegen obenstehenden "boolean activated"
if (activated) {
BaseWriterTool brt = new BaseWriterTool();
brt.mousePress(nativeEvent);
}
}
@Override
public void nativeMouseReleased(NativeMouseEvent nativeEvent) {
}
public void setActivated(boolean toggle) {
this.activated = toggle;
}
}
Zuletzt bearbeitet: