📄 eventhandlingneudeu.html
字号:
<html><!-- InstanceBegin template="/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Java Cooperation: new Java - API</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>EventHandling mit der neuen Java - API</h2>
<p align="justify">Nachdem ich immer wieder Mails bekommen habe, dass das von mir in den Beispielprogrammen verwendete und auch im Tutorial besprochene EventHandling beim Compilieren zu Fehlern bzw. Warnings führt habe ich mich nun doch entschlossen, das Ganze auf den neusten Stand zu bringen. Dennoch will ich die beiden ursprünglichen Kapitel zu Maus- und Keyboardereignissen weiterhin im Tutorial belassen, denn zum einen erklären sie bestimmte Teile vielleicht ausführlicher als es dieses Kapitel tun wird und zum anderen halte ich die von mir ursprünglich vorgestellte Methode gerade für Programmieranfänger für ein bischen einfacher zu verstehen.<br>
In diesem Kapitel werde ich nun kurz auf die EventListener, die zum Auffangen von Benutzereingaben (Maus- und Keyboardereignisse) nötig sind eingehen, ohne diese jedoch im Detail zu besprechen. Dafür solltet ihr euch dann die JavaAPI vornehmen.</p>
<h3>KeyListener</h3>
<p align="justify">Um Keyboardereignisse abzufangen existiert im Package java.awt.event ein Interface namens <i>KeyListener</i>. Wenn ihr in eurem Applet auf Keyboardevents hören wollt, dann sollte eure Appletklasse genau dieses Interface implementieren, bzw. eine Klasse, die dieses Interface implementiert verwenden. Durch das Interface wird sichergestellt, das folgende Methoden von der Listenerklasse implementiert werden:</p>
<ul>
<li>keyPressed(KeyEvent e): Key wird gedrückt</li>
<li>keyReleased(KeyEvent e): Key wird losgelassen</li>
<li>keyTyped(KeyEvent e): Key wurde gedrückt und wieder losgelassen</li>
</ul>
<p align="justify">Um nun auf Keyevents zu hören, müsst ihr die Klasse, die das Interface KeyListener implementiert als <i>KeyListener</i> beim Applet registrieren. Das geschieht, indem ihr in der init() - Methode des Applets die Listenerklasse mit der <i>addKeyListener(KeyListener listener)</i> dem Applet als Keylistener hinzufügt. Implementiert das Applet selbst das Interface, so schreibt ihr einfach <i>addKeyListener(this)</i>. Genauere Informationen, welcher Key gedrückt wurde... erhaltet ihr über das KeyEvent e, dass euch in der Methode mitgegeben wird. Beispiele dafür findet ihr im Beispielapplet zu diesem Kapitel.</p>
<h3>Mausereignisse</h3>
<p align="justify">Mausereignisse werden auf die gleiche Art und Weise gefangen und gehandelt. Allerdings gibt es hier zwei verschiedene Listernerklassen (ebenfalls im Package java.awt.event) nämlich den <i>MouseListener</i> und den <i>MouseMotionListener</i>. Beide müssen, soll das Applet auf Mausklick und Mausbewegungen hören dem Applet in gleicher Weise wie der KeyListener als Listener hinzugefügt werden. Allerdings gibt es hier die Methoden <i>addMouseListener(MouseListener listener)</i> und <i>addMouseMotionListener(MouseMotionListener listener)</i>. Im Detail müssen folgende Methoden implementiert werden:</p>
<h4>MouseListener</h4>
<ul>
<li>mouseClicked(MouseEvent e): Maus geklickt</li>
<li>mouseEntered(MouseEvent e): Maus kommt innerhalb des Applet Frames</li>
<li>mouseExited(MouseEvent e): Maus verlässt Applet Frame</li>
<li>mousePressed(MouseEvent e): Mausbutton ist gedrückt</li>
<li>mouseReleased(MouseEvent e): Mausbutton wird wieder losgelassen</li>
</ul>
<h4>MouseMotionListener</h4>
<ul>
<li>mouseMoved(MouseEvent e): Maus wird bewegt</li>
<li>mouseDragged(MouseEvent e): Maus wurde mit gedrücktem Button bewegt</li>
</ul>
<p align="justify">Details über die MouseEvents und welche Daten man daraus gewinnen kann findet ihr im Beispielcode zu diesem Kapitel.<br>
Ja, das wars auch schon wieder mit dem Schnelldurchlauf durch das etwas fortgeschrittenere Eventhandling. Ich hoffe, dass ich damit den etwas erfahreneren Programmierern unter euch etwas weiter helfen konnte und diejenigen, die noch nie etwas von Interfaces gehört haben nicht allzusehr verunsichert habe. Viel Spaß noch weiterhin und wie immer kommt hier noch das Beispielapplet und der Sourcecode.</p>
<p><a href="SourceCodes/EventHandling/Main.java">SourceCode download</a><br>
<a href="Applets/EventHandling/EventHandling.html">Applet ansehen</a>
<h4>Nächstes Kapitel</h4>
<a href="DasersteSpielDeu.html">Das erste Spiel</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 + -