Download presentation
Presentation is loading. Please wait.
Published byつかさ あわたけ Modified 約 6 年前
1
アプレット yukita@k.hosei.ac.jp
プログラミング 第10回 アプレット プログラミング第10回
2
Application と applet 独立したJavaプログラムはアプリケーションと呼ばれ,最初にロードされるクラスの main メソッドの実行から始まる. アプレットは他のアプリケーションの一部として実行されるJavaプログラム。 ここで言う他のアプリケーションとは, WEBブラウザ JDK付属の appletviewer プログラミング第10回
3
アプレットの作成 import java.applet.*; main メソッドは不要で,以下のメソッドが必須。 javacでコンパイル
initメソッド startメソッド stopメソッド destroyメソッド javacでコンパイル HTMLファイルが必要 プログラミング第10回
4
HelloApplet.java (List B-1, p.311)
import java.awt.*; import java.applet.*; public class HelloApplet extends Applet { public void paint(Graphics g){ FontMetrics f=g.getFontMetrics(); int x=0; int y=f.getAscent(); g.drawString("HelloApplet", x, y); } プログラミング第10回
5
HelloApplet.html (List B-2, p.311)
<BODY BGCOLOR="#FFFFCC"> <APPLET CODE="HelloApplet.class" WIDTH=400 HEIGHT=50> </APPLET> </BODY> </HTML> プログラミング第10回
6
実行方法 HelloApplet.htmlのアイコンをダブルクリックする。 その他いろいろ。 プログラミング第10回
7
Swingを使ったアプレットの例 インタフェースという言語要素の登場 MouseListener インタフェースの実装
プログラミング第10回
8
Pattern.java (Swing版) import javax.swing.*; import java.awt.*;
import java.awt.event.*; import java.applet.*; public class Pattern extends JApplet implements MouseListener{ final int R=10; int rw=R, rh=R; double rpar=1.0, gpar=1.0, bpar=1.0; Dimension dim; Image offimg; Graphics offgra; プログラミング第10回
9
Pattern.java (2) public void init(){ String s;
s=getParameter("RECTWIDTH"); if(s!=null){ rw=Integer.parseInt(s); } s=getParameter("RECTHEIGHT"); rh=Integer.parseInt(s); addMouseListener(this); プログラミング第10回
10
Pattern.java (3) public void start(){ dim=getSize();
offimg=createImage(dim.width, dim.height); offgra=offimg.getGraphics(); } プログラミング第10回
11
Pattern.java (4) public void mouseClicked(MouseEvent e){
int ex=Math.abs(e.getX()-(dim.width-rw))/2; int ey=Math.abs(e.getY()-(dim.width-rh))/2; int dist2=ex*ex + ey*ey; if(-1<dist2 && dist2<1) dist2=1; rpar=Math.random() *ex*ex/dist2; gpar=Math.random() *ex*ey/dist2; bpar=Math.random() *ey*ey/dist2; repaint(); } プログラミング第10回
12
Pattern.java (5) public void mouseEntered(MouseEvent e){};
public void mouseExited(MouseEvent e){}; public void mousePressed(MouseEvent e){}; public void mouseReleased(MouseEvent e){}; public void update(Graphics g){ paint(g); } プログラミング第10回
13
Pattern.java (6) public void paint(Graphics g){
if(offgra==null) return; for(int y=0; y<dim.height; y+=rh){ for(int x=0; x<dim.width; x+=rw){ int ex=x-(dim.width-rw)/2; int ey=y-(dim.height-rh)/2; int dist2=ex*ex+ey*ey; int gr=(int)(dist2*rpar)%256; int gg=(int)(dist2*rpar)%256; int gb=(int)(dist2*rpar)%256; offgra.setColor(new Color(gr,gg,gb)); offgra.fillRect(x,y,rw,rh); } g.drawImage(offimg,0,0,this); プログラミング第10回
14
Pattern.html (1) <HTML> <BODY BGCOLOR="#FFFFCC">
マウスであちこちクリックするとパターンが変化します. <APPLET CODE="Pattern.class" WIDTH=300 HEIGHT=300> <PARAM NAME=RECTWIDTH VALUE=10> <PARAM NAME=RECTHEIGHT VALUE=10> </APPLET> <BR> プログラミング第10回
15
Pattern.html (2) 著作権については以下の通りなのですが、雪田が著者に無断で勝手に
一部改造しています。従いまして,このプログラムを公開することは 差し控えさせていただきます。 Copyright (C) 1998,1999 by <A HREF= Yuki.</A> </BODY> </HTML> プログラミング第10回
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.