📄 mausereignissedeu.html
字号:
<html><!-- InstanceBegin template="/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Java Cooperation: handle mouse events </title>
<!-- InstanceEndEditable --><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="jc_style.css" rel="stylesheet" type="text/css">
<script src="klayers.js"></script>
<script>
function cancelCloseMenu(){
if(self.tm) clearTimeout(tm) // cancel delayed closing
}
function showMenu(){
if(!self.menu || !self.submenu){
menu=layer("menulayer")
submenu=layer("submenulayer")
}
cancelCloseMenu()
submenu.moveTo(menu.getAbsoluteLeft(), menu.getAbsoluteTop() + menu.getHeight()) // move second menu relatively
submenu.show()
}
function initiateHideMenu(){
tm=setTimeout("hideMenu()",400) // 1 second delay to close a submenu
}
function hideMenu(){
submenu.hide()
}
</script>
<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
</head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">
<div align="center">
<a name="top"></a>
<table bgcolor="#737373" border="0" cellpadding="0" cellspacing="0" width="618">
<tr>
<td rowspan="8" bgcolor="#000000"><img src="Pics/spacer.gif" width="1" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="131" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="13" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="58" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="94" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="81" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="48" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="23" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="38" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="19" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="108" height="1" border="0" alt=""></td>
<td bgcolor="#000000"><img src="Pics/spacer.gif" width="5" height="1" border="0" alt=""></td>
</tr>
<tr>
<td rowspan="5"><a href="index.html"><img name="fab_r1_c1" src="Pics/fab_r1_c1.gif" width="131" height="71" border="0" alt="Java cooperation home"></a></td>
<td rowspan="6" bgcolor="#737373"></td>
<td colspan="9" height="15" bgcolor="#737373"></td>
<td rowspan="8" bgcolor="#000000"><img src="Pics/spacer.gif" width="1" height="1" border="0" alt=""></td>
</tr>
<tr>
<td colspan="5"><div class="colontitul"><!-- InstanceBeginEditable name="Colontitul" -->Tutorial<!-- InstanceEndEditable --></div></td>
<td colspan="2" bgcolor="#737373"><img name="fab_r2_c8" src="Pics/fab_r2_c8.gif" width="57" height="19" border="0" alt="type and press Enter"></td>
<td colspan="2">
<FORM method=GET action="http://www.google.com/search">
<TABLE bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" height="10px"><tr>
<td height="10" valign="middle">
<INPUT TYPE=text name=q size=18 maxlength=60 value="" style="font-size:12px; color:#000000; border-width: 0px;">
<input type=hidden name=domains value="http://javacooperation.gmxhome.de/">
<input type=hidden name=sitesearch value="http://javacooperation.gmxhome.de/" checked>
</td></tr></TABLE>
</td>
</form>
<td><img src="Pics/spacer.gif" width="1" height="19" border="0" alt=""></td>
</tr>
<tr>
<td colspan="9" bgcolor="#666666"><img name="fab_r3_c3" src="Pics/fab_r3_c3.gif" width="474" height="8" border="0" alt=""></td>
<td><img src="Pics/spacer.gif" width="1" height="8" border="0" alt=""></td>
</tr>
<tr>
<td colspan="6"><a href="TutorialStartDeu.html"><img src="Pics/deupanel_01.gif" width="56" height="22" border="0"></a><a href="OnlineSpieleStartDeu.html"><img src="Pics/deupanel_02.gif" width="94" height="22" border="0"></a><a href="DownloadsDeu.html"><img src="Pics/deupanel_03.gif" width="76" height="22" border="0"></a><a href="LinksDeu.html"><img src="Pics/deupanel_04.gif" width="52" height="22" border="0"></a><a href="KontaktDeu.html"><img src="Pics/deupanel_05.gif" width="64" height="22" border="0"></a></td>
<td><img name="fab_r4_c9" src="Pics/fab_r4_c9.gif" width="19" height="22" border="0" alt=""></td>
<td width="108" height="22" bgcolor="#666666"><div align="center"><span id="menulayer" style="position: relative; background-color:#666666; width:108; height:20; vertical-align:baseline; border:1px solid #FFFFFF"><a href="#" class="text" onmouseover="showMenu(); return true" onmouseout="initiateHideMenu(); return true">Select language</a></span>
</div>
<div id="submenulayer" style="position: absolute; visibility: hidden; background-color: #666666; width:108px;">
<div class="text" style="border:1px solid #FFFFFF; border-top-width:0; padding:5px">
<a href="#" onmouseover="cancelCloseMenu(); return true" onmouseout="initiateHideMenu(); return true">German</a><br>
<a href="indexEng.html" onmouseover="cancelCloseMenu(); return true" onmouseout="initiateHideMenu(); return true">English</a><br>
<a href="http://javacooperation.dev.juga.ru/index.html" onmouseover="cancelCloseMenu(); return true" onmouseout="initiateHideMenu(); return true">Russian</a>
</div>
</div>
</td>
<td><img name="fab_r4_c11" src="Pics/fab_r4_c11.gif" width="5" height="22" border="0" alt=""></td>
</tr>
<tr>
<td colspan="9"><img name="fab_r5_c3" src="Pics/fab_r5_c3.gif" width="474" height="7" border="0" alt=""></td>
</tr>
<tr>
<td colspan="11" style="padding:18; background-color:#333333; vertical-align:top;">
<div class="text">
<!-- InstanceBeginEditable name="EditRegion" -->
<h2>Bearbeiten von Mausereignissen in Java 1.1 (Deprecated)</h2>
<p align="justify"><b>Achtung</b>: Diese Art der Ereignissbehandlung ist in seit Java 1.2 als deprecated markiert und erzeugt beim Kompilieren eine Warnung / lässt sich mit 1.4 nicht kompilieren. Da aber viele noch Microsofts Internet Explorer 5 verwenden, dessen Virtual Maschine noch die JDK Version 1.1 verwendet ist diese Art der Ereignissbehandlung noch für viele Browser möglich und verwendbar. Solltet ihr aber mit euren Applets auf dem neusten Stand bleiben wollen, so verwendet bitte das in dem Kapitel <a href="EventHandlingNeuDeu.html">neues Eventhandling</a> beschriebene Verfahren. Dieses Kapitel ist allerdings ausführlicher so dass es vielleicht einige Dinge besser erklärt als das neue Kapitel!</p>
<p align="justify">Kein Spiel kommt ohne Interaktionen mit dem Spieler aus. In unserem Fall stehen dem Spieler zwei Möglichkeiten zur Verfügung, wie er in das Spielgeschehen eingreifen kann, nämlich mit der Maus oder mit der Tastatur seines Computers. In den nächsten zwei Kapiteln möchte ich zeigen, wie Maus- und Keyboardevents von Applets verarbeitet werden können. Wiederum ist dies in Applets leichter zu bewerkstelligen als in Konsolenanwendungen, daher kann man die von mir vorgestellten Methoden nicht eins zu eins in Konsolenanwendungen übertragen. In jedem guten Javabuch wird jedoch EventHandling ausführlich für Konsolenanwendungen behandelt (z. B. in dem Onlinebuch GoToJava: siehe Links), so dass man sich dieses Wissen leicht selbst aneignen kann. <br>
Im folgenden möchte ich unser BallApplet so erweitern, dass der Ball auch dann seine Richtung ändert, wenn der Benutzer auf das Applet klickt.</p>
<p align="justify">Um dies zu verwirklichen muss man (in Applets!!) lediglich die Funktion <i>mouseDown</i> implementieren. Diese sollte in unserem Fall folgendermaßen aussehen:</p>
<ul><i>
// Funktion zum Auffangen eines Mausklicks auf das Applet <br>
public boolean mouseDown (Event e, int x, int y) <br>
{
<ul>
// Umkehren des Richtungsvektors <br>
x_speed = - (x_speed); <br> <br>
// Rückgabewert in diesem Fall unnötig, aber verlangt !! <br>
return true;
</ul>
}
</i></ul>
<p align="justify">Zusätzlich müsst ihr die run() - Methode noch ein wenig abändern, siehe dazu den Source Code zu diesem Kapitel!</p>
<p align="justify">Natürlich lassen sich nicht nur Mausklicks verarbeiten. Java stellt eine Reihe von Methoden zur Verfügung, die ich nun kurz vorstellen möchte. Sie alle können auf dieselbe Art und Weise wie oben gesehen in das Applet eingefügt werden:</p>
<ol start="1" type="1">
<li>Mausklick:</li>
<ol start="1" type="a">
<li>public boolean mouseDown (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maustaste gedrückt wird</li>
<li>public boolean mouseUp (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maustaste losgelassen wird</li>
<li>Mit der Variablen e.clickCount hat man zudem Zugriff auf die Anzahl der Clicks und kann somit auch Doppelklicks anders behandel als einfache Klicks</li>
</ol>
<li>Bewegen der Maus:</li>
<ol start="1" type="a">
<li>public boolean mouseMove (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maus bewegt wird</li>
<li>public boolean mouseDrag (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn die Maus mit gedrückter Maustaste bewegt wird</li>
</ol>
<li>Mauspositionen:</li>
<ol start="1" type="a">
<li>public boolean mouseEnter(Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn der Mauszeiger das Appletfeld "betritt"</li>
<li>public boolean mouseExit (Event e, int x, int y): Fängt das Ereigniss auf, das entsteht, wenn der Mauszeiger das Appletfeld verlässt</li>
</ol>
</ol>
<p align="justify">Mit den Variablen int x und int y hat man zudem Zugriff auf die Koordinaten, an denen das Mausevent passiert ist, was natürlich für viele Spiele äußerst wichtig ist. Außerdem muss man darauf achten, dass die Methoden explizit einen Rückgabewert true oder false verlangen, der nicht immer eine Bedeutung für die Behandlug des Ereignisses hat. Es muss jedoch immer ein boolscher Wert zurückgegeben werden! </p>
<p><a href="SourceCodes/Mausereigniss/Mausereigniss.java">SourceCode download</a><br>
<a href="Applets/Mausereigniss/MausereignissApplet.html">Applet ansehen</a>
<h4>Nächstes Kapitel</h4>
<a href="TastaturereignisseDeu.html">Tastaturereignisse</a>
<!-- InstanceEndEditable -->
</div>
</td>
</tr>
<tr>
<td colspan="11" style="background-color:#990000" align="center">
<table width="100%" style="padding:0"><tr>
<td width="88" bgcolor="#993300"><div align="center" style="font-size:10px; color: #FFFFFF;"> <a href="#top"> to top </a></div></td>
<td><div align="center" style="font-size:10px; color: #FFFFFF;">
<a href="mailto:javacooperation@gmx.de">Fabian Birzele</a>, 2001-2004.<br>
web-design: <a href="http://www.freehand.str.ru/">Vadim Murzagalin</a>, 2004.
</div></td>
<td width="88">
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
<!-- InstanceEnd --></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -