Mausrad logitech kann links und rechts klick wie in java abragen.

richis-fragen

Aktives Mitglied
Hallo Forum.
Ich hab wahrscheinlich eine dumme Frage.

Meine Maus kann über das Scroll-Rad nach links und nach rechts geklickt werden.

In allen anwendungen Firefox, exlipse, und alle anderen wird darauf reagiert. (Horizontaler Bildlauf nach rechts/links je nach dem)

Meine Frage:
Wie schaffe ich es, dass auch in einem ScrollPane von Java, mit aktiver Horizontal Bildlaufleiste darauf reagiert wird?

Alles was ich im Google gefunden habe behandelt Shift-Down und Mausrad Wheel! Aber ich habe nichts gefunden was das obige macht.

Vielen Dank für Ihre immer wieder geschätzte Hilfe.
Richi
 

Oneixee5

Top Contributor
Wahrscheinlich sendet deine Maus zusätzlich irgendwelche Tastendrücke mit, wie: Shift oder Strg. Du kannst zum Test mal zusätzlich zum MouseListener einen KeyListener erstellen und die Tasten loggen.
 

richis-fragen

Aktives Mitglied
Wahrscheinlich sendet deine Maus zusätzlich irgendwelche Tastendrücke mit, wie: Shift oder Strg. Du kannst zum Test mal zusätzlich zum MouseListener einen KeyListener erstellen und die Tasten loggen.

Vielen Dank.
Habe ich schon probiert.

Gibt es noch andere Listener als:
  • MouseListener()
  • MouseMotionListener()
  • KeyListener()
Die sowas abfangen können? Bin wirklich nur ein Anfänger...

Habe ein Linux Mint Mathe.
Die Maus ist eine LogiTech und läuft ohne Treiber

Sowohl in Windows, Mac und Linux macht die Horizontale Bildlaufleise von JScrollPane NICHTS.

In allen Betriebssystemen funktioniert das mit dem Mausrad nach links/rechts klick in allen Anwendungen. Sogar in den gekauften Java Programmen.

Nur bei meinen Progrämmchen geht es nicht. Versteh die Java-Welt halt nicht wirklich. :mad:

PS. Googeln OHNE Englisch-Kenntnisse bringt leider auch nichts... 😨
 

richis-fragen

Aktives Mitglied
Und da hast Du isShiftDown - damit kannst Du feststellen, ob die Bewegung vertikal (false) oder horizontal (true) war.
Da kommt nur eine Meldung wenn ich die Taste "Shift" effektiv auf der Tastatur gedrückt habe und auch nur dann, wenn ich das Mausrad scrolle.

Wenn ich das Rad nach links / rechts drücke kommt auch bei gedrückter "Shift"-Taste nichts

:oops: Warum funktioniert das bei professionellen reinen Java-Anwendungen (OS unabhängig)? Woher haben Die diese die Informationen?
Habe auch schon den UIManager bemüht. Ich komme auch nicht via Terminal / Eingabeaufforderung an gewünschte Information.

Aber irgendwie müssen das die Profis doch auch irgendwo herhaben. Ich verstehs nicht.
Richi
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Was mich gerade irritiert: Du hast kein Mausrad, das horizontal scrollen kann sondern das sind Mausclicks?

Die Daten werden garantiert ankommen an irgend einer Stelle nur eben habe ich keine solche Hardware und im Augenblick habe ich auch Probleme, das im Detail zu verstehen...

Evtl. macht es Sinn, einfach einmal alle Events abzufangen und dann die ganzen Details auszugeben. MouseWheelListener hatten wir jetzt in diesem Thread schon - und wenn das kommt, dann kannst Du alle Elemente ausgeben (Das ist viel, da ja durch die Vererbung auch InputEvent Dinge mit enthalten sind ... aber man kann ja alles ausgeben).

Und da Du sagst, dass Du mit dem Mausrad nach links oder rechts "clickst" - Dann sind es evtl. einfache Maustasten. Das wäre dann der MouseListener / MouseAdapter. Und da hast Du dann ja alle Events mit mouseClicked, mousePressed, mouseReleased, ....
Evtl. ist es ja das und Du kannst da auch alles ausgeben und dann siehst Du ja, ob Du so ein Event bekommst. Dann könntest Du mit getButton() schauen, was denn gedrückt wurde. Das gibt einen Integer aber an Konstanten sind nur BUTTON1 bis BUTTON3 und das NOBUTTON definiert. Aber den Wert kannst Du Dir ja ausgeben lassen.
 

richis-fragen

Aktives Mitglied
Was mich gerade irritiert: Du hast kein Mausrad, das horizontal scrollen kann sondern das sind Mausclicks?
Ich denke schon, weil ich z.B im Excel/Calc das Mausrad nach rechts drücke, wandert die Horizontale (und auch das ganze Sheet) nach links resp. nach rechts bis zum Ende, wenn ich es nicht loslasse. Wenn ich nur kurz nach links/rechts drücke tönt es wie wenn ich eine Maustaste gedrückt und losgelassen hätte. Einfach "klick".
Und da Du sagst, dass Du mit dem Mausrad nach links oder rechts "clickst" - Dann sind es evtl. einfache Maustasten. Das wäre dann der MouseListener / MouseAdapter. Und da hast Du dann ja alle Events mit mouseClicked, mousePressed, mouseReleased, ....
Evtl. ist es ja das und Du kannst da auch alles ausgeben und dann siehst Du ja, ob Du so ein Event bekommst. Dann könntest Du mit getButton() schauen, was denn gedrückt wurde. Das gibt einen Integer aber an Konstanten sind nur BUTTON1 bis BUTTON3 und das NOBUTTON definiert. Aber den Wert kannst Du Dir ja ausgeben lassen.
Das ist es offensichtlich nicht??? Vlt. schon aber wie fängt man diese speziellen ab.
e.getButton() wirft nichts aus (egal in welchem Listener) wenn ich das Rad nach links/rechts kippe, aber bei der physischen Maus tönt es wie ein klick.

Wenn ich jedoch das Mausrad wie eine Maustaste nach unten drücke, wird mit e.getButton() das Rad als Button 2 ausgegeben.
 

KonradN

Super-Moderator
Mitarbeiter
Das ist es offensichtlich nicht??? Vlt. schon aber wie fängt man diese speziellen ab.
e.getButton() wirft nichts aus (egal in welchem Listener) wenn ich das Rad nach links/rechts kippe, aber bei der physischen Maus tönt es wie ein klick.
Wenn Du e.getButton() aufrufen kannst, dann bekommst Du also beim drücken des Mausrads nach links oder rechts ein Event? Oder was genau hast Du gemacht? Zeig doch mal den Code - ich nehme mal an, dass Du ein kleines Fenster gemacht hast mit den entsprechenden Event Listenern.

Und dann kannst Du im Detail sagen, was wann passiert.
 

richis-fragen

Aktives Mitglied
Und dann kannst Du im Detail sagen, was wann passiert.
Leider NICHTS.

Wenn ich e.getButton() aufrufe, bekomme ich alle Buttons von 1-6 inklusife Button 2 wenn ich das Rad nach unten drücke.
Aber es erscheint keine Meldung (er geht nicht mal in den Listener) wenn ich das Rad nach links/rechts drücke.

Aber in allen Anwendungen (Firefox, Excel und sogar im einfachen Editor) wird wenn ich das Rad nach rechts drücke die Horizontale Bildlaufleiste nach RECHTS verschoben bis zum Ende und äquivalent der Inhalt nach Links verschoben.

Und wie gesagt auch bei den gekauften Java-Anwendungen (Steuersoftwar "SofTax" was ein reines Javaprogramm ist) funktioniert es.
Sowohl auf Window, Mac und Linux.
Nur eben wenn ich ein ScrollPane habe kriege ich es nicht gebacken.

Werde mal ein JFrame mit JScrollPane basteln, ohne viel drumrum und schauen ob es dann funktioniert.
Werde den Code dann hier Posten.

Vielen Dank schon mal.
Richi
 

richis-fragen

Aktives Mitglied
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;

public class ScrollTest extends JFrame {

    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
        new ScrollTest();
    }
   
    public ScrollTest() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(150, 150, 300, 400);
       
        JPanel pan = new JPanel();
        pan .setPreferredSize(new Dimension(400, 600));
        pan.setBackground(new Color(242, 117, 117));
       
        JScrollPane scrollTab = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollTab.setPreferredSize(new Dimension(520, 300));
        scrollTab.setViewportView(pan);
        scrollTab.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("E-Button = "+e.getButton());
            }
        });
       
        getContentPane().add(scrollTab, BorderLayout.CENTER);
        setVisible(true);
    }

}
Es wird wirklich NICHTS geworfen...
Das muss etwas anderes als ein Klick-Ereignis sein! Nur wieso funktioniert es bei anderen aber bei mir nicht?

Vertikal scrollen funktioniert ohne irgendwelche Listener. Auch Horizontal scrollen bei gedrückter "Shift"-Taste funktioniert wenn ich das Rad scrolle!

Aber wenn ich das Rad nach links/rechts kippe, geht bei mir gar NICHTS.
 

richis-fragen

Aktives Mitglied
Hurra!!!
Ganz grossen Dank @KonradN

Hab mir alle Posts nochmals in Ruhe durchgelesen...!!!
Habe, warum auch immer den MouseListerner NICHT ans ScrollPane gehängt.

Jetzt wirft er mir beim drücken nach links den Button 4, und beim drücken nach rechts den Button 5!!!

Vielen, vielen Dank für Deine Versuche mich zu Erleuchten! Hat funktioniert.
Das Problem ist gelösst!!
Und das bedeutet mir viel!

Dankbaren Gruß
Richi
 

Oneixee5

Top Contributor
Noch mal zu Ergänzung: unter Linux kannst du im Terminal deiner Wahl das Programm xinput verwenden:
Bash:
xinput --list                                     
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Wireless Receiver Mouse            id=15    [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Video Bus                                   id=8    [slave  keyboard (3)]
    ↳ Power Button                                id=9    [slave  keyboard (3)]
    ↳ Cooler Master Technology Inc. MasterKeys Pro S white    id=10    [slave  keyboard (3)]
    ↳ Cooler Master Technology Inc. MasterKeys Pro S white System Control    id=11    [slave  keyboard (3)]
    ↳ Cooler Master Technology Inc. MasterKeys Pro S white Consumer Control    id=12    [slave  keyboard (3)]
    ↳ Cooler Master Technology Inc. MasterKeys Pro S white Keyboard    id=13    [slave  keyboard (3)]
    ↳ FT FIDO KB                                  id=14    [slave  keyboard (3)]
    ↳ HP WMI hotkeys                              id=16    [slave  keyboard (3)]
Dann suchst du nach deiner Maus, hier id=15:
Bash:
xinput --test 15
Dient dann zur Ausgabe aller Mausaktionen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
S Animation/links-rechts Java Basics - Anfänger-Themen 9
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
H Links/Rechtsverschiebung oder was stellt das dar? Java Basics - Anfänger-Themen 2
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
R HTTP-Links in Java Class finden Java Basics - Anfänger-Themen 3
M Erste Schritte Links öffnen Java Basics - Anfänger-Themen 6
C eine diagonale von rechts nach links im 2d-array Java Basics - Anfänger-Themen 1
U Best Practice Nicht-permanente Links auf Dateien Java Basics - Anfänger-Themen 5
M suche/brauche Links über rein GUI Beispielprogramme Java Basics - Anfänger-Themen 4
B Links & Zusatzinformationen aus PDFs zusammentragen Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
S Links ausführen und Ausführzeiten festlegen Java Basics - Anfänger-Themen 4
0din Applet und Links Java Basics - Anfänger-Themen 4
S HEX oder String rotieren lassen (rechts raus, links rein) Java Basics - Anfänger-Themen 3
M Links anpassen Java Basics - Anfänger-Themen 2
M HTML in JOptionPane-Dialog aber keine Links Java Basics - Anfänger-Themen 6
B DL Links aus Textdatei in BB Code einbetten Java Basics - Anfänger-Themen 5
H Icon links oben im JFrame deaktivieren? Java Basics - Anfänger-Themen 2
S jpanel links oben ausrichten Java Basics - Anfänger-Themen 7
M quelltext html-seite speichern + links speichern Java Basics - Anfänger-Themen 2
K Grafik beim JFrame oben Links ändern nur wie ? Java Basics - Anfänger-Themen 8
J Links zum jdk 6 Java Basics - Anfänger-Themen 25
M Strings links, rechts und centriert ausrichten Java Basics - Anfänger-Themen 12
B Links verfolgen -- Bibliothek nicht gefunden? Java Basics - Anfänger-Themen 6
Z Applet text der sich von links nsch rechts bewegt Java Basics - Anfänger-Themen 3
G JPanel (Abstand von links) Java Basics - Anfänger-Themen 1
M Formulare ausfüllen / Links aktivieren [erledigt] Java Basics - Anfänger-Themen 3
A Links aus Firefox an Java Programm weiterleiten Java Basics - Anfänger-Themen 6
C Links fuer Tuts und so. Java Basics - Anfänger-Themen 2
D HTML Code einlesen und nach Links parsen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben