Events nicht plattform-unabhängig?

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hallo, ich hab mal gehört dass gewünschte Funktionalität - trotz Java - bei gewissen Events nicht immer zu 100% auf allen Systemen gewährleistet ist. Ich hab nun eine Methode:

Code:
@Override
	public void mousePressed(MouseEvent e) {
		switch (e.getButton()) {
		case MouseEvent.BUTTON1:
			leftClicked(e);
			break;
		case MouseEvent.BUTTON3:
			rightClicked(e);
			break;
		}
	}

und frag mich ob diese Events mit jedem OS so behandelt werden wie gewünscht.
Des weiteren frage ich mich, ob das überhaupt Maus-abhängig ist?
 

Wildcard

Top Contributor
Was sich unterscheidet ist in diesem Fall nicht das Event, sondern die Semantik. Nicht auf jedem System erwartet man bei Rechtsklick ein Popup (siehe MacOS). Daher verwendet man isPopupTrigger bei mousePressed und mouseReleased damit dir Swing mitteilen kann was nun auf der jeweiligen Plattform passieren soll.
Was sich hingegen unterscheidet sind die low level Events keyPressed und keyReleased
 

hdi

Top Contributor
Hm also das hab ich nur halb verstanden.
Ich muss doch irgendwie wissen, welche Taste ein Mac-User drückt auf
der Maus, wenn er einen "Windows-Rechtsklick" haben will.

Was ist wenn isPopupTrigger() false returned? Das bringt mich ja auch
nicht weiter, ich meine es soll ja auch auf Macs funzen.
 

Wildcard

Top Contributor
Ich glaube nicht das du das halb verstanden hast ;)
Wenn Button 3 zurückgegeben wird, war es wohl auch Button 3. Aber was bedeutet das? Auf Windows Systemen ein Popup öffnen (bei mouseReleased). Auf Linux (je nach Window Manager) auch ein Popup, aber bei mousePressed.
Bei Mac Systemen gibt es unter umständen gar kein Mouse 3. Deshalb:
Kümmer dich nicht um die Tastennummer, sondern um die Semantik. Geht es dir darum ein Popup zu öffnen, dann frag nach isPopupTrigger und zwar unabhängig davon welche Taste gedrückt wurde.
 

hdi

Top Contributor
Ah, ok jetzt hab ich's halb verstanden ;)

Aber das ganze abstrahiert doch eine jede Maus quasi auf 2 Tasten:
PopupTrigger und nicht PopuTrigger. Wenn ich nun mehr als 2 Maus-Tasten
im Programm verwenden möchte, wie mach ich das dann systemsicher?
 

Wildcard

Top Contributor
Es hängt doch davon ab was du mit den Buttons überhaupt machen willst, das hast du bisher noch nicht erwähnt.
 

hdi

Top Contributor
Ja also ich möchte mit linker Maustaste normal "agieren", zB ein Objekt anklicken,
um es zu nehmen.
Und mit der rechten Maustaste möchte ich ein Kontext-Menü auf einem Objekt
aufklappen können.

Aber das war's ja nicht, ich möchte zB mit der mittleren Maustaste irgendwas tun,
was eigentlich auch normales "agieren" ist, aber halt einfach etwas anderes tut
als die linke Maustaste.

Also mein Verständnisproblem ist: isPopupTrigger() liefert einen boolean, also zwei
verschiedene Werte. Wenn ich aber 3 Tasten nutzen will, wie kann ich zwischen linker Maustaste und mittlerer Maustaste systemunabhängig unterscheiden? Das sind ja beides Tasten, die nicht Popup-Trigger sind.
 

Wildcard

Top Contributor
Die linke Taste kann ein Popup Trigger sein, bei der mittleren bin ich nicht sicher.
Was ist nun aber dein Problem? Den Mouse Button bekommst du doch.
 

hdi

Top Contributor
Naja ich weiss nich ob ich überhaupt ein Problem habe, das war ja meine Frage.
Ich will wissen ob unter jedem OS und mit jeder Maus das ganze so funktioniert,
wie es halt bei mir zu Hause mit Vista und meiner Maus ist.

D.h. ob ich einfach Button1 und Button3 benutzen kann, und dann weiss wenn jmd
daheim links klickt, ist das button1, und wenn er rechts klickt, button3.

Aber du sagtest ja, das is eben nicht so. Bin grad etwas durcheinander ;)
 

Wildcard

Top Contributor
Wenn im Event steht Button 3, dann war es Button 3, wenn dort steht 1, dann war es die 1. Ich versuche nur dir zu erklären, das die Semantik eines solchen Buttons nicht auf jeder Plattform die gleiche ist weil nicht jedes System so wie Windows bedient wird.
Bei MacOS mit einer 1 Tasten Maus steht zum Beispiel Apfel+Mouse Klick für ein Popup.
 

diggaa1984

Top Contributor
vielleicht hat hdi die innerlich unruhe das button3 auf nem mac nicht die rechte maustaste ist sondern die mittlere oder sowas .. das sich vielleicht die button-nummern, sag ich mal, von OS zu OS unterscheiden >> können <<
 

hdi

Top Contributor
Ja genau das mein ich halt. Schon mal in nem Spiel gelesen "Drücke MouseEvent.BUTTON3" ?
Ich muss doch wissen, welches Event beim Drücken welcher Maustaste ausgelöst wird.
Es interessiert mich als Entwickler des Spiels ja nicht nur, dass gewisse Dinge passieren,
wenn man irgendwas drückt. Ich bin doch dafür verantwortlich dem User eine angenehme Steuerung
zu bieten, und um mir so etwas zu überlegen muss ich doch wissen welche Maustaste für welches Event steht.

...weil sonst muss ein Mac-User am Ende die bescheuertsten Klick-Kombinationen drücken,
die für die Hand umständlich auszuführen sind. Wer spielt denn dann sowas..
 
Zuletzt bearbeitet:

hdi

Top Contributor
woher soll wildcard das denn wissen
Ich hab ihm nie einen Vorwurf gemacht ;)
Ist halt immer schwer wenn man nach einem Problem fragt, von dem man nicht mal wissen kann,
ob es überhaupt eines ist, weil das Problem ist, das man nicht weiss, ob's ein Problem ist.

Alles klar? Genau ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
0 Events werden nicht ausgelöst AWT, Swing, JavaFX & SWT 2
B Swing setDefaultButton geht nicht - Komponente fängt Events ab AWT, Swing, JavaFX & SWT 5
S Events abfangen, nicht durchlassen AWT, Swing, JavaFX & SWT 2
G mouse events AWT, Swing, JavaFX & SWT 6
Heldderschatten Java Events und Interfaces AWT, Swing, JavaFX & SWT 18
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
D Swing Events vom JLayer abfangen AWT, Swing, JavaFX & SWT 2
D Transparentes Hauptfenster Events AWT, Swing, JavaFX & SWT 1
M Swing Hinter die Kulissen von Events (addActionListener) AWT, Swing, JavaFX & SWT 6
N JTextArea Events weiterleiten AWT, Swing, JavaFX & SWT 3
R SWT Eigene Events erstellen und werfen AWT, Swing, JavaFX & SWT 59
S Mouse Events in einer sortierten JTable unterscheiden AWT, Swing, JavaFX & SWT 18
C Swing Simulation von Drag and Drop Events AWT, Swing, JavaFX & SWT 3
J Events und Sleep? AWT, Swing, JavaFX & SWT 4
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
E JFace ListSelectionDialog & Mouse-Events? AWT, Swing, JavaFX & SWT 2
N Variablen in Events AWT, Swing, JavaFX & SWT 4
P AWT MouseListener unklare abhandlung von Events AWT, Swing, JavaFX & SWT 3
L Swing Auslöser eines Events finden? AWT, Swing, JavaFX & SWT 6
R JTable - eigener Editor - Mouse events AWT, Swing, JavaFX & SWT 2
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
Weltall 7 AWT Maus-Events werden doppelt ausgeführt AWT, Swing, JavaFX & SWT 12
V Swing Auslösen von zwei Events hintereinander AWT, Swing, JavaFX & SWT 4
T Swing Control und Events AWT, Swing, JavaFX & SWT 8
MrMilti Gezeichnete Java2D Elemente mit Events versehen AWT, Swing, JavaFX & SWT 3
R Events - Nur auf eines reagieren AWT, Swing, JavaFX & SWT 3
T JComboBox: ActionListener/ItemListener wie nur auf bestimmte Events reagieren? AWT, Swing, JavaFX & SWT 7
R Key und Mouse Events AWT, Swing, JavaFX & SWT 2
K Alle Events abfangen mit GlassPane AWT, Swing, JavaFX & SWT 7
T SWT - Table Events AWT, Swing, JavaFX & SWT 3
M SWT: eigene Events AWT, Swing, JavaFX & SWT 9
G Reihenfolge von Events AWT, Swing, JavaFX & SWT 4
D Events bei Tabs in einem Editor AWT, Swing, JavaFX & SWT 2
F Probleme mit MouseWheel events in SWT AWT, Swing, JavaFX & SWT 13
M Globale Events in Windows abfangen AWT, Swing, JavaFX & SWT 2
T Hilfe zu Events? AWT, Swing, JavaFX & SWT 6
T Events unterdrücken AWT, Swing, JavaFX & SWT 8
G An die Quelle einen events kommen AWT, Swing, JavaFX & SWT 2
M Problem mit verschachtelten Events und kein ausweg in sicht AWT, Swing, JavaFX & SWT 3
W Vom JPanel bekomme ich keine Events AWT, Swing, JavaFX & SWT 5
V Events an untere Layers weitergeben AWT, Swing, JavaFX & SWT 2
V events skippen AWT, Swing, JavaFX & SWT 14
M Events auslagern? AWT, Swing, JavaFX & SWT 6
F Events AWT, Swing, JavaFX & SWT 8
N SWT: GUI Windows Events AWT, Swing, JavaFX & SWT 8
I Globale Tastatur-Events abfragen AWT, Swing, JavaFX & SWT 3
D Events werden zu oft aufgerufen AWT, Swing, JavaFX & SWT 4
G Events AWT, Swing, JavaFX & SWT 2
K Mouse Events der Scrollbar/pane AWT, Swing, JavaFX & SWT 2
S Events fremdauslösen AWT, Swing, JavaFX & SWT 17
K Doppelte Events AWT, Swing, JavaFX & SWT 4
A Combobox Focus-Events, Tab in Tabelle AWT, Swing, JavaFX & SWT 7
D Events, Listener, GUI . Größeres Projekt AWT, Swing, JavaFX & SWT 4
A Vielschichtige GUI und Events? AWT, Swing, JavaFX & SWT 4
V JList mit Events Steuern ? AWT, Swing, JavaFX & SWT 15
S Rechner zu schnell für Events? AWT, Swing, JavaFX & SWT 14
G JTable und Events AWT, Swing, JavaFX & SWT 4
S Events bei 2 gleichen Jtree abfangen AWT, Swing, JavaFX & SWT 3
ShapeShifter JButton erzeugt zwei Events AWT, Swing, JavaFX & SWT 4
B Eigenes Events AWT, Swing, JavaFX & SWT 3
T JScrollPane-Events AWT, Swing, JavaFX & SWT 2
M JTable und Events AWT, Swing, JavaFX & SWT 4
K JComboBox: Endlosschleife durch Events AWT, Swing, JavaFX & SWT 4
K [JComboBox] ENTER löst zwei events aus? AWT, Swing, JavaFX & SWT 2
M Glasspane und dispatchen von Events AWT, Swing, JavaFX & SWT 6
H Events manuell aufrufen AWT, Swing, JavaFX & SWT 4
F JComboBox setEditable( true ) auf Tastatur Events reagieren AWT, Swing, JavaFX & SWT 4
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX PixelWriter.setColor setzt Farbe nicht AWT, Swing, JavaFX & SWT 2
M JavaFX Diagonale Linie nicht ausgegeben/angezeigt AWT, Swing, JavaFX & SWT 1
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
Hatsi09 Javafx MediaPlayer spielt nicht immer AWT, Swing, JavaFX & SWT 3
P thread nimmt veränderte boolean nicht AWT, Swing, JavaFX & SWT 7
P Animation läuft nicht korrekt AWT, Swing, JavaFX & SWT 8
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
thor_norsk Icons laden nicht in GUI AWT, Swing, JavaFX & SWT 15
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
G JOptionPane zeigt nicht an was ich will AWT, Swing, JavaFX & SWT 2
S JavaFX WebView zeigt bestimmte Websites nicht an AWT, Swing, JavaFX & SWT 2
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
berserkerdq2 Anchorpane warum kann ich nicht Anchors setzen AWT, Swing, JavaFX & SWT 6
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
M Scrollbar funktioniert nicht AWT, Swing, JavaFX & SWT 10
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Fxml findet controller nicht AWT, Swing, JavaFX & SWT 2
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
frager2345 Warum paintComponent hier und nicht paint AWT, Swing, JavaFX & SWT 2
_user_q [JavaFX] Spinner so einstellen, dass er nicht leer bleiben darf? AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben