Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Java] Mouse event handling in JDK

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi allen,

even een kleine vraag.

Ik ben de source code van de JDK aan het bekijken, omdat ik me afvroeg hoe Java mouse events afhandelt voor JFrames. Wordt dit, bijvoorbeeld het drag-and-drop en rescale gedeelte, overgedragen en afgehandeld door het native operating systeem of gebeurt het toch gewoon ergens in de Java code?

Groeten David

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Uh, dit kun je dus gewoon in de source code zien. Wat heb je zelf geconcludeerd na het bekijken van de source code?

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 20-11 09:31
Hiervoor is Swing afhankelijk van de AWT event queue waarin events vanuit het native OS terecht komen.

Verwijderd

Topicstarter
@BalusC: Ik heb geconcludeerd dat JFrame geen MouseMotionListener is en dat er toch rescale pijltje verschijnen.

Waar komen die vandaan, welke listener bepaalt dat op dat moment een pijltje moet worden getekend?

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Kijk eens welke klassen de JFrame extended. Een ervan is java.awt.Component.
Dit staat ook op diens API doc: http://java.sun.com/javas...i/javax/swing/JFrame.html

[ Voor 38% gewijzigd door BalusC op 07-03-2008 10:09 ]


Verwijderd

Topicstarter
Dat snap ik. Alle subclasses en interfaces in de structuur van JFrame heb ik reeds bekeken.
Nergens zie ik een MouseListener. Component heeft dus ook géén code die verantwoordelijk is voor het tekenen van een resize-pijltje.

Vermoedelijk is het Operating System hier dus voor verantwoordelijk, maar dat vermoeden wil ik graag bevestigd hebben.

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 20-11 09:15

NetForce1

(inspiratie == 0) -> true

De decorations van een frame (titlebar en borders) zijn native (tenzij uitgezet dmv Frame#setUndecorated(true). Je zult een kijkje moeten nemen in de AWT implementatie, voor Windows is dat sun.awt.windows.WFramePeer (en superclasses).

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Verwijderd

Topicstarter
Dank NetForce1, dat wilde ik weten.
Pagina: 1