Java Jinput: Controller neu scannen / laden
Ich benutze Javajinput
Bibliothek, um Daten vom Joypad zu lesen, und ich habe Probleme beim NeuladenControllers
Ich benutze dies, um sie zu laden:
public Controller[] findStickControllers() {
ControllerEnvironment ce =
ControllerEnvironment.getDefaultEnvironment();
Controller[] cs = ce.getControllers();
System.out.println(cs.length); //test
ArrayList<Controller> sel = new ArrayList<>();
for (Controller c: cs) {
if(c.getType() == Type.STICK) {
sel.add(c);
}
}
return sel.toArray(new Controller[]{});
}
Dies funktioniert einwandfrei, aber wenn ich meinen Controller vom Computer trenne, wird er beim Aufrufen erneut gefunden und umgekehrt (wenn Sie ihn nach der ersten Überprüfung anschließen, wird er überhaupt nicht gefunden).
Ich habe versucht, den Schlaf vor der Suche nach der Faust einzuschalten, mit den folgenden Ergebnissen:
Controller werden beim ersten Aufruf der Methode (nicht beim Programmstart) tatsächlich gescanntBei einem erneuten Aufruf werden immer die Controller zurückgegeben, die zum ersten Mal zurückgegeben wurden.Beim ersten Aufruf wird auch ein Warnhinweis angezeigtSelbst wenn der Controller verbunden ist (und funktioniert), dann getrennt wird (er wird es trotzdem finden) und erneut verbunden wird, funktioniert es nichtWarnung von Punkt 3: (Format nicht gut in der Liste)
WARNING: Found unknown Windows version: Windows 8
Attempting to use default windows plug-in.
Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin
Ich benutze Win 8 und hatte das gleiche Problem unter Win 7. Ich hatte dies auch mit der Maus versucht, die gleichen Ergebnisse.
Wie kann ich Steuerungen für die 2., 3. und so weiter Zeit tatsächlich neu laden?