Java Applet教程:鼠标拖拽事件处理示例

需积分: 9 2 下载量 131 浏览量 更新于2024-07-13 收藏 811KB PPT 举报
本文主要介绍了如何在JAVA Applet中处理鼠标拖拽事件,以及JAVA Applet的基本概念、结构和运行机制。 在JAVA Applet中,鼠标拖拽事件处理是通过`mouseDragged(MouseEvent e)`方法实现的。这个方法在用户进行鼠标拖动操作时被调用。在给出的代码示例中,`mouseDragged`方法接收一个`MouseEvent`对象,该对象包含了关于鼠标事件的信息,如鼠标当前位置的坐标。在事件处理中,`dx`和`dy`分别代表鼠标拖动前后的偏移量,`x`和`y`则是当前鼠标位置相对于基准点的坐标。 当判断`dx`和`dy`都在特定范围内(在这个例子中,`dx`在0到120之间,`dy`在0到60之间),表示鼠标指针落在了图形上方,程序会执行相应的操作。这里,代码获取了当前图形上下文`Graphics g`,并调用了`update(g)`方法,清空了画布并重新绘制了内容。这个过程通常用于更新界面,确保在拖拽过程中显示正确的内容。 JAVA Applet是Java语言的一种特殊应用类型,它嵌入在HTML网页中,由Web服务器传输到用户计算机上运行。这使得Applet能够跨平台运行,只要用户的浏览器支持Java。Java程序有两种主要形式:Java Application和Java Applet。Applet需要与Web服务器交互,并且其生命周期由浏览器管理。 创建一个简单的Applet涉及到以下步骤: 1. 继承自`Applet`类,重写必要的方法,如`paint(Graphics g)`,在其中进行绘图或处理其他视觉展示。 2. 在HTML文件中使用`<APPLET>`标签指定Applet的类路径、大小等属性,以便浏览器能够加载和运行Applet。 3. 使用`appletviewer`工具预览Applet的运行结果,或者在支持Java的浏览器中查看。 此外,还可以通过HTML中的`<APPLET>`标签传递参数给Applet,以实现对Applet行为的定制。例如,可以改变Applet的初始状态或设置特定的配置值。 JAVA Applet结合了Java的跨平台特性和Web的分布式特性,使得动态交互的网页内容成为可能。尽管现代Web开发更多地倾向于使用JavaScript和其它现代Web技术,但理解Applet的工作原理对于深入学习Java和Web编程历史仍有价值。

/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=63141:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/cat.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/crs-agent.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/rt.jar:/Users/shenglei/Library/Mobile Documents/com~apple~CloudDocs/💻Code/🍀/i/out/production/i Task1 Exception in thread "main" java.lang.IllegalArgumentException: Error decoding percent encoded characters at sun.net.www.ParseUtil.decode(ParseUtil.java:216) at sun.misc.URLClassPath$FileLoader.<init>(URLClassPath.java:1366) at sun.misc.URLClassPath$3.run(URLClassPath.java:574) at sun.misc.URLClassPath$3.run(URLClassPath.java:569) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath.getLoader(URLClassPath.java:568) at sun.misc.URLClassPath.getLoader(URLClassPath.java:533) at sun.misc.URLClassPath.getNextLoader(URLClassPath.java:498) at sun.misc.URLClassPath.getResource(URLClassPath.java:252) at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:419) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:352) at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:304) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401) FATAL ERROR in native method: processing of -javaagent failed 进程已结束,退出代码134 (interrupted by signal 6: SIGABRT)

2023-06-06 上传