使用頻度大のものをコピー&ペーストで使えるよう 「覚え書」 としたものです。 参考になれば喜。 動作確認は自責で。 | ||||
JavaScript の覚え書 | Javaアプレット の覚え書 | Python の覚え書 | Perl の覚え書 | |
おもちゃ箱---HTML5作品(JavaScript)、Javaアプレット作品、Python作品 を多数置いています | ||||
■コメント文 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
// または /* */ |
○ その行の // より後ろに記述された部分はコメントになる。 ○ /* と */ で挟まれた部分はコメントになる。複数行になるコメントのときはこちらを使用する。 (なお、HTMLでのコメントは、<!-- -->。また、スタイルシートでのコメントは、/* */。) |
2006.12.30 |
■小数点以下の処理 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
(例) double a, x; a=13.64; // 正の数のとき x=Math.ceil(a); x=Math.floor(a); x=Math.round(a); a=-13.64; // 負の数のとき x=Math.ceil(a); x=Math.floor(a); x=Math.round(a); a=-13.51; x=Math.round(a); a=-13.5; x=Math.round(a); a=-13.49; x=Math.round(a); a=13.64; // 正の数のとき x1=(int)(a); a=-13.64; // 負の数のとき x1=(int)(a); |
切り上げる。x=14.0 になる。 切り捨てる。x=13.0 になる。 四捨五入する。x=14.0 になる。 x=-13.0 になる。 x=-14.0 になる。 x=-14.0 になる。 (注意:Math.round(負数) の場合には特に注意) x=-14.0 になる。 x=-13.0 になる(-14.0 にはならない!)。 x=-13.0 になる。 x1=13 になる。 x1=-13 になる。 |
2006.12.30 |
■算術演算(商、余り、大きい方、小さい方、絶対値、べき乗、平方根、指数、対数) ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
(例) int a=7; int b=3; int x; x=a/b; // aをbで割った商を求める。 x=a%b; // aをbで割ったときの余りを求める。 x=Math.max(a, b); // aとbの値のうち大きい方の値を求める。 x=Math.min(a, b); // aとbの値のうち小さい方の値を求める。 x=Math.abs(b-a); // 絶対値を求める。 double c=3.0; double d=4.0; double y; y=Math.pow(c,d); // cのd乗を求める。 y=Math.sqrt(c); // cの平方根を求める。 y=Math.exp(c); // 自然対数の底eのc乗を求める。 y=Math.log(c); // cの自然対数値を求める。 |
x=2 になる。 x=1 になる。 x=7 になる。 x=3 になる。 x=4 になる。 y=81.0 になる。 y=1.7320508075688772 になる。 y=20.085536923187668 になる。 y=1.0986122886681096 になる。 ○ /, %, Math.max, Math.min, Math.abs は long, float, double 型に対しても同様である。 |
2006.12.30 |
■乱数を発生 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
Math.random() (例) 1,2,3,4,5 内で乱数を得るには int x=1+(int)(Math.random()*5); |
Math.random() は、0以上1未満のランダムな小数値を返すので、それを 5倍し (int) で小数点以下を切り捨てて整数にすると、0から4までの乱数を得る。それに1を加える。 |
2006.12.30 |
■for文 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
(例) for(int i=0; i<=5; i++) { } |
○変数 i は宣言しておかなくてはならない。 |
2006.12.30 |
■switch文 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
switch() { case 0: …; break; case 1: …; break; ・ ・ ・ default: …; }(例) String weeks[]=["日", "月", "火", "水", "木", "金", "土"]; Calendar calendar = new GregorianCalendar(); int wday=calendar.get(Calendar.DAY_OF_WEEK)-1; // 曜日の取得 switch(wday) { case 0: g.drawString("今日は日曜日で休みです。", 10, 20); break; case 6: g.drawString("今日は土曜日で休みです。", 10, 20); break; default: g.drawString("今日は"+weeks[wday]+"曜日です。", 10, 20); } |
default はどれにも当てはまらない場合の処理(省略可能)。 | 2006.12.30 |
■繰り返し(ループ)やブロックから抜け出す ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
(例) int k=0; for(int i=0; i<=10; i++) { k++; if(k>3) break; } |
○ for, while, do などの繰り返し処理や、 switch による分岐から抜け出す。 なお、continue を用いると、繰り返しをそこでスキップし処理の先頭に戻る。 |
2006.12.30 |
■テキスト表示 ◆このページのトップへ | 説明(表示の結果) | 更新日 | |
Javaアプレット |
(例) g.setFont(new Font("Times Roman", Font.PLAIN, 14)); g.setColor(new Color(0, 0, 255)); g.drawString("こんにちは", 10, 120); |
(フォント, 細字, フォントサイズ) 色 こんにちは ("テキスト", x座標, y座標) ○ 色指定は、g.setColor(new Color(0, 0, 255)) の代わりに、 grf.setColor(Color.blue); あるいは grf.setColor(new Color(0x0000ff)); でも同じ結果になる。 ○ 太字でイタリックにするには、Font.PLAIN のところを Font.BOLD|Font.ITALIC にする。) |
2006.12.30 |
■文字列の比較 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
if("文字列0".equals("文字列1")){ } (例) String str0="おはよう"; if(str0.equals("おはよう")) { g.drawString("str0 は、おはよう です。", 10, 120); } else { g.drawString("str0 は、おはよう ではありません。", 10, 120); } |
文字列0 と 文字列1 が同じなら{ }。 |
2007.01.01 |
■文字列の検索 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
文字列.indexOf("検索文字", 検索開始位置); 文字列.lastIndexOf("検索文字", 検索開始位置); (例) int n; String str="abcdABCDabcdABCD"; n=str.indexOf("ABC", 5); n=str.indexOf("ABC"); n=str.lastIndexOf("ABC", 5); n=str.lastIndexOf("ABC"); |
検索開始位置から後ろへ検索し、最初に出現する位置を返す。 検索開始位置から前へ検索し、最初に出現する位置を返す。 n=12 になる。 n=4 になる。 検索開始位置を省略すると、最初から検索する。 n=4 になる。 n=12 になる。 検索開始位置を省略すると、最後尾から検索する。 ○ 先頭の文字が 0番目。 ○ 検索して見つからなければ -1 を返す。 |
2006.12.30 |
■文字列から1文字だけを抜き出す ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
文字列.charAt(抜き出す文字の位置) (例) String data="ABCDEFGHI"; char text=data.charAt(4); |
text には、4番目の文字 ”E” が代入される。 ( 先頭の文字は 0番目) |
2006.12.30 |
■文字列から何文字か抜き出す ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
文字列.substring(開始文字の位置(ここから), 最終文字の次位置(ここの前まで)) (例) String data="ABCDEFGHI"; String text=data.substring(4, 7); |
text には、4番目~6番目の ”EFG” が代入される。( 先頭の文字は 0番目) ○ 最終前文字の位置を省略すれば、最後尾までになる。 |
2006.12.30 |
■文字列を分割する(結果を配列として返す) ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
文字列.split("分割文字") (例) String[ ] text; String data="今日は、晴れています。"; text=data.split("、"); |
○ 文字列が ”、” で分割され、結果を配列にして返す。結果として text[0]="今日は"; text[1]="晴れています。"; になっている。 |
2006.12.30 |
■文字列の置換 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
文字列0.replace("文字列1", "文字列2"); (例) String str="abcdABCDabcdABCD"; str=str.replace("ABC", "12"); |
文字列0 の中のすべての 文字列1 を 文字列2 に置き換える。 str の中のすべての ”ABC” を ”12” に置き換える。その結果 str="abcd12Dabcd12D" になる。 |
2006.12.30 |
■今日の日付を取得する ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
(例) Calendar calendar = new GregorianCalendar(); Date NowTime = new Date(); calendar.setTime(NowTime); int year=calendar.get(Calendar.YEAR); // 年の取得 int month=calendar.get(Calendar.MONTH)+1; // 月の取得 int day=calendar.get(Calendar.DATE); // 日の取得 int wday=calendar.get(Calendar.DAY_OF_WEEK)-1; // 曜日の取得 String weeks[ ]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; g.drawString("今日は "+year+" 年 "+month+" 月 "+day+" 日 ("+weeks[wday]+") です。", 0, 0); |
○ このまま使うと 今日は 2006 年 12 月 30 日 (Sat) です。 のようになる。 なお、(アプレットでは) import java.awt.*; import java.util.*; が必要(importしておくこと)。 | 2006.12.30 |
■現在の時刻を取得する ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
(例) Calendar calendar = new GregorianCalendar(); Date NowTime = new Date(); calendar.setTime(NowTime); int hour=calendar.get(Calendar.HOUR_OF_DAY); int min=calendar.get(Calendar.MINUTE); int sec=calendar.get(Calendar.SECOND); int misec=calendar.get(Calendar.MILLISECOND); // ミリ秒(必要なら) g.drawString("現在 "+hour+" 時 "+min+" 分 "+sec+" 秒です。", 0, 0); |
○ このまま使うと 現在 16 時 13 分 44 秒 です。 のようになる。 なお、(アプレットでは) import java.awt.*; import java.util.*; が必要(importしておくこと)。 |
2006.12.30 |
■数字を数値に変換 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
Double.parseDouble("数字"); Integer.parseInt("数字" , 進数); (例) double nn; nn=Double.parseDouble("1.23"); int n; n=Integer.parseInt("345"); n=Integer.parseInt("11", 2); n=Integer.parseInt("a", 16); n=Integer.parseInt("012"); |
数字(文字列)を数値に変換する。 数字(文字列)を整数値に変換する。 (進数を省略すれば 10進数とみなされる。) nn=1.23 になる。 n=345 になる。 n=3 になる。 2進数の 11 は、10進数で 3 だから。 n=10 になる。 16進数の a は、10進数で 10 だから。 n=12 になる。 最初の 0 は無視される。 ○ 逆に 数値を数字(文字列)に変換するには、 Stirng str=Integer.toString(123); // str="123" になる。 |
2007.01.02 |
■数式を数値に変換(数式を与えると数値を返す) ◆このページのトップへ | 説明 | 更新日 | ||||||||||||||||
Javaアプレット |
Java では eval 関数が存在しないようなので、自分用に作った。 自由に使ってください。(改変自由。 動作確認、使用は自責で。) evalMyJava("変数", "数式") (例) double x=0.2; String equation="Math.sin(x)+Math.pow(x, 2)-3*x+1"; String str=evalMyJava(x, equation); double y=0; try { y=Double.parseDouble(str); } catch(NumberFormatException ex){} evalMyJava(x, equation)関数は、evalMyJava.html ←をクリックして表示されるもの全部なので、そのままコピーして貼り付けて使用。この関数に対しての import は 次の2つのみでよい。 import java.applet.* import java.awt.* |
数式には、 数字、演算子(*, /, +, -)および 次の数学関数(Math)が使用できる。
戻り値は String型 にしているので、Double.parseDouble(str) で double型にする。 y=0.6386693307950612 になる。 (Math.sin(0.2)+Math.pow(0.2, 2)-3*0.2+1 の計算値) |
2007.01.01 | |||||||||||||||
※ なお、自作しないでも、JavaScript にある eval 関数 を Javaで呼び出して使うやり方がある。次のようにする。 まず、import は次の3つを追加しておくこと。 import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; //------------- String equation="Math.sin(0.2)+Math.pow(0.2, 2)-3*0.2+1"; String y=""; ScriptEngineManager sem=new ScriptEngineManager(); // JavaScript の eval関数 を使用 ScriptEngine se=sem.getEngineByName("JavaScript"); try { y=String.valueOf(se.eval(equation)); // y=0.6386693307950612(Math.sin(0.2)+Math.pow(0.2, 2)-3*0.2+1 の計算値を返す // (注:y は数値ではなく 文字列(数字)にしている) } catch (ScriptException e){} |
2019.03.27 |
■ファイル読み込み(ファイルからデータを入力) ◆このページのトップへ | 更新日 | |
Javaアプレット |
(例) 別ファイルとして、データを記述した datafile.txt というファイルを用意しておく。一方 String str=""; String data=""; try { URL urladd=new URL( getCodeBase( ), "datafile.txt"); BufferedReader br=new BufferedReader(new InputStreamReader(urladd.openStream( ))); while(true) { str=br.readLine(); // 1行ずつ読み込む if(str==null){break;} else {data=data+str+"\\";} // 読み込んだものを付加。\\は改行マークとして使うために付けているだけ } br.close(); } catch(IOException e){} // 例外処理 |
2006.12.30 |
■ファイル出力(データをファイルに出力)-方法1 ◆このページのトップへ | 説明 | 更新日 | |
Javaアプレット |
アプレットでは、ファイル出力はできない。そこで、CGIとの連携で行う。種々の方法があるが、私のやり方(方法1)は次のようにする。 (例) 出力したいデータが、整数値で その変数が int hensu の場合で述べる。 (Javaアプレットの code に付け加えるもの) // データをCGIへ送るメソッド ( 仮に getData() という名を付けるが、これは好きに変えてよい) public int getData() { return hensu; } (HTML 側 に付け加えるもの) // JavaScriptを用いる( 仮に sendData() という名を付けるが、これは好きに変えてよい) <script language="JavaScript"> <!-- function sendData() { document.formname.hensu.value = document.applets[0].getData(); } // --> </script> // フォーム( 仮に、データを書き込むファイル名を save.cgi とする) <form name="formname" action="save.cgi" method="POST" onSubmit="sendData();"> <input type="hidden" name="hensu"> <input type="submit" value="送信"> </form> (CGI 側( save.cgi ) で、送られてきた hensu を受け取る)(省略) |
○ 出力したいデータの型によって int hensu のところを、 double hensu とか String hensu にすればよい。 |
2006.12.30 |
■ファイル出力(データをファイルに出力)-方法2 ◆このページのトップへ | 更新日 | |
Javaアプレット |
アプレットでは、ファイル出力はできない。そこで、CGIとの連携で行う。種々の方法があるが、私のやり方(方法2)は次のようにする。
String strData="この文章を送信してみます。"; // 送信するデータ try { URL url=new URL(getCodeBase(), "./Save.cgi"); // 送信先URL(相対パスで記述している) URLConnection urlCon=url.openConnection(); // ネットワーク接続 urlCon.setDoOutput(true); urlCon.setDoInput(true); urlCon.setAllowUserInteraction(false); PrintWriter writer=new PrintWriter(urlCon.getOutputStream()); writer.print(strData); writer.close(); BufferedReader mReader=new BufferedReader(new InputStreamReader(urlCon.getInputStream())); } catch (Exception e){}これを用いて、JavaアプレットからCGI(Save.cgi とする)へデータ(strData とする)を送信し、ファイル(temp.data とする)に書き込む場合の実際例は次のようになる。 //************************************** // Sample.java //************************************** import java.applet.*; import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; //-------------------------------------------------------------------- public class Sample extends Applet { //---------------------------------------------------------------- public void init() { } // マウス--------------------------------------------------------- public boolean mouseDown(Event evt, int ix, int iy) { if(ix>30 && ix<150 && iy>30 && iy<60) // 送信ボタンをクリックしたとき { sendCGI(); // (Save.cgi へ移行しない場合は、ここの部分は削除してください)***** try { URL newURL=new URL(getCodeBase(), "./Save.cgi"); // ここに、リンク先のURLを書く getAppletContext().showDocument(newURL); // リンク先へ飛ぶ } catch(MalformedURLException er){} //**************************************************************** } return true; } // CGIにデータをPOST送信------------------------------------------ private void sendCGI() { String strData="この文章を送信してみます。"; // 送信するデータ try { URL url=new URL(getCodeBase(), "./Save.cgi"); // 送信先URL(相対パスで記述している) URLConnection urlCon=url.openConnection(); // ネットワーク接続 urlCon.setDoOutput(true); urlCon.setDoInput(true); urlCon.setAllowUserInteraction(false); PrintWriter writer=new PrintWriter(urlCon.getOutputStream()); writer.print(strData); writer.close(); BufferedReader mReader=new BufferedReader(new InputStreamReader(urlCon.getInputStream())); } catch (Exception e){} return; } // ペイント------------------------------------------------------- public void paint(Graphics g){update(g);} public void update(Graphics g) { Image offs=createImage(getWidth(), getHeight()); Graphics grf=offs.getGraphics(); grf.setColor(new Color(0xffcccc)); // 送信ボタン grf.fillRect(30, 30, 120, 30); grf.setFont(new Font("", Font.PLAIN, 14)); grf.setColor(new Color(0x000000)); grf.drawString("CGIへ送信", 60, 50); g.drawImage(offs, 0, 0, this); } }以上である。 Save.cgi でデータを受信し、ファイルに書き込むには read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); # postされたデータの読み込み open(OUT,"+< temp.dat"); # ファイルへの書き込み print OUT "$buffer"; close(OUT);のようにする。(Save.cgi で受信した $buffer は直接表示されないので、temp.dat から読み込んで表示すればよい) |
2009. 2.28 |
■図形を描く ◆このページのトップへ | 更新日 | |
Javaアプレット |
○ 図形を描くには、次のようにする。 public void paint(Graphics g){update(g);} public void update(Graphics g) { g.setColor(new Color(0x77bb88)); // 色 g.drawRect(10, 20, 30, 40); // 長方形 g.fillRect(8, 20, 30, 40); // 長方形(塗りつぶす) } ○ スクリーンオフを用いる場合には、次のようにする。 public void paint(Graphics g){update(g);} public void update(Graphics g) { Image offs=createImage(getWidth(), getHeight()); Graphics grf=offs.getGraphics(); grf.setColor(new Color(0x77bb88)); // 色 grf.drawRect(10, 20, 30, 40); // 長方形 grf.fillRect(8, 20, 30, 40); // 長方形(塗りつぶす) g.drawImage(offs, 0, 0, this); } 種々の図形を描くには、青色の記述のところを以下のようにする。(スクリーンオフを用いる場合は、g. を grf. にすること) ● 直線を描く・・・・2点 (x0,y0),(x1,y1) を結ぶ直線を描く g.drawLine(x0, y0, x1, y1); (例) g.drawLine(10,20,50,80); ● 長方形を描く・・・・4点 (x,y),(x,y+h),(x+w,y+h),(x+w,y) を頂点とする長方形を描く。したがって、横 w+1, 縦 h+1 の長さになる。 g.drawRect(x,y,w,h); g.fillRect(x,y,w,h); (塗りつぶすとき) g.drawRoundRect(x,y,w,h,a,b); g.fillRoundRect(x,y,w,h,a,b); (塗りつぶすとき) (例) g.drawRect(10, 20, 30, 40); g.fillRect(10, 20, 30, 40); g.drawRoundRect(10, 20, 30, 40, 10, 10); g.fillRoundRect(10, 20, 30, 40, 10, 10); ● 円(楕円)を描く・・・・4点 (x,y),(x,y+h),(x+w,y+h),(x+w,y) を頂点とする長方形内に円(楕円)を描く。したがって、円(楕円)の中心は(x+w/2,y+h/2)になる。 g.drawOval(x,y,w,h); g.fillOval(x,y,w,h); (塗りつぶすとき) (例) g.drawOval(10,20,150,130); g.fillOval(10,20,150,130); ● 円弧(扇形)を描く・・・・4点 (x,y),(x,y+h),(x+w,y+h),(x+w,y) を頂点とする長方形内に円弧(扇形)を描く。 g.drawArc(x,y,w,h); g.fillArc(x,y,w,h); (塗りつぶすとき) (例) g.drawArc(10,20,150,130,30,80); g.fillArc(10,20,150,130,30,80); ● 多角形を描く・・・・点 (x0,y0),(x1,y1), …,(xn,yn) を頂点とする多角形を描く。 int[ ] x={x0,x1,…,xn}; int[ ] y={y0,y1,…,yn}; g.drawPolygon(x,y,n); g.fillPolygon(x,y,n); (塗りつぶすとき) (例) int[ ] x={10,30,70}; int[ ] x={10,30,70}; int[ ] y={20,50,35}; int[ ] y={20,50,35}; g.drawPolygon(x,y,3); g.fillPolygon(x,y,3); |
2005.01.06 |
■図形を描く(Graphics2D) ◆このページのトップへ | 更新日 | |
Javaアプレット |
○ Graphics2D を用いると、きれいな図形が描ける。 また、平行移動、回転、拡大縮小も容易にできる。 スクリーンオフを用いる場合で記述する。 import java.awt.geom.*; import java.awt.image.BufferedImage; が必要(インポート)。 public void paint(Graphics g){update(g);} public void update(Graphics g) { Graphics2D g2D=(Graphics2D)g; BufferedImage readImage=new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_BGR); Graphics2D offs=readImage.createGraphics(); offs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // アンチェリアス offs.setStroke(new BasicStroke(3.0f)); // 線の太さ offs.setPaint(Color.red); // 線の色 offs.draw(new Line2D.Double(30, 10, 180, 140)); // 直線(座標は int型 でも double型でもよい) g2D.drawImage(readImage, 0, 0, this); } 種々の図形を描いたり、平行移動、回転、拡大縮小するには、青色の記述のところを以下のようにする。 ● 直線を描く・・・・2点 (x0,y0),(x1,y1) を結ぶ直線を描く (例) offs.setStroke(new BasicStroke(3.0f)); // 線の太さ offs.setPaint(Color.red); // 線の色 offs.draw(new Line2D.Double(30, 10, 180, 140)); // 直線(座標は int型 でも double型でもよい) ● 長方形を描く (例) offs.setStroke(new BasicStroke(2.5f)); // 線の太さ offs.setPaint(new Color(0xff0000)); // 線の色 offs.fill(new Rectangle2D.Double(260, 20, 120, 50)); // 長方形 offs.draw(new RoundRectangle2D.Double(260, 120, 120, 50, 10, 10)); // 角丸長方形 ● 円(楕円)を描く・・・・4点 (x,y),(x,y+h),(x+w,y+h),(x+w,y) を頂点とする長方形内に円(楕円)を描く。したがって、円(楕円)の中心は(x+w/2,y+h/2)になる。 (例) offs.setStroke(new BasicStroke(2.0f)); // 線の太さ offs.setPaint(Color.blue); // 線の色 offs.draw(new Ellipse2D.Double(230, 30, 120, 120)); // 円 offs.fill(new Ellipse2D.Double(430, 30, 120, 120)); // 円(塗りつぶし) offs.draw(new Ellipse2D.Double(260, 70, 220, 50)); // 楕円 offs.fill(new Ellipse2D.Double(460, 70, 220, 50)); // 楕円(塗りつぶし) ● 円弧(扇形)を描く・・・・4点 (x,y),(x,y+h),(x+w,y+h),(x+w,y) を頂点とする長方形内に円弧(扇形)を描く。 (例) offs.setStroke(new BasicStroke(1.0f)); // 線の太さ offs.setPaint(new Color(255,0,0)); // 線の色 offs.fill(new Arc2D.Double(30, 150, 110, 110, 330, 100, Arc2D.PIE)); // 円弧 ○ 円弧の線の閉じ方として次の3つのスタイルがある。Arc2D.PIE, Arc2D.CHORD, Arc2D.OPEN ● 2次元ベジエ曲線を描く (例) offs.draw(new QuadCurve2D.Double(160.0d, 120.0d, 140.0d, 240.0d, 320.0d, 220.0d)); offs.fill(new QuadCurve2D.Double(180.0d, 160.0d, 350.0d, 150.0d, 250.0d, 260.0d)); ● 多角形を描く・・・・点 (x0,y0),(x1,y1), …,(xn,yn) を頂点とする多角形を描く。 (例) offs.setStroke(new BasicStroke(2.0f)); // 線の太さ offs.setPaint(new Color(255,0,255)); // 線の色 int[] xpoints1={340, 450, 230}; int[] ypoints1={280, 300, 360}; offs.draw(new Polygon(xpoints1, ypoints1, 3)); ● 平行移動 (例) offs.setStroke(new BasicStroke(2.0f)); // 線の太さ offs.setPaint(new Color(255,0,255)); // 線の色 AffineTransform af=new AffineTransform(); // 平行移動 af.setToTranslation(150d, 50d); // 平行移動する数値 offs.setTransform(af); offs.draw(new Rectangle2D.Double(100, 500, 60, 40)); ● 回転 (例) offs.setStroke(new BasicStroke(2.0f)); // 線の太さ offs.setPaint(new Color(0,0,255)); // 線の色 AffineTransform af1=new AffineTransform(); af1.setToRotation(3*Math.PI/180); offs.setTransform(af1); offs.draw(new Rectangle2D.Double(100, 500, 60, 40)); (例) offs.setStroke(new BasicStroke(2.0f)); // 線の太さ offs.setPaint(new Color(0,0,255)); // 線の色 offs.draw(new Rectangle2D.Double(100, 200, 60, 40)); AffineTransform af2=new AffineTransform(); // 回転 af2.setToRotation(45 * Math.PI/180, 130d, 220d); // (回転角,回転中心x座標,回転中心y座標) offs.setTransform(af2); offs.setPaint(new Color(255,255,0)); // 線の色 offs.draw(new Rectangle2D.Double(100, 200, 60, 40)); ● 拡大、縮小 (例) offs.setStroke(new BasicStroke(1.0f)); // 線の太さ offs.setPaint(Color.red); // 線の色 offs.draw(new Rectangle2D.Double(100, 200, 60, 80)); AffineTransform af4=new AffineTransform(); af4.setToScale(2.0d, 2.0d); offs.setTransform(af4); offs.draw(new Rectangle2D.Double(100, 200, 60, 80)); なお、Graphics2D で、文字を表示するには、次のようにする。 ● 文字の表示 (例) offs.setPaint(new Color(255,255,0)); // 文字の色 offs.setFont(new Font("Arial", Font.PLAIN, 16)); // フォント offs.drawString("Hello Java2D", 830, 40); offs.setFont(new Font("MS 明朝", Font.BOLD, 32)); // フォント offs.drawString("こんにちは", 830, 80); |
2008.11.30 |
■ボタンを設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //************************************** // button:ボタン(Java アプレット) //************************************** import java.applet.*; import java.awt.*; import java.awt.event.*; //================================================ public class button extends Applet implements ActionListener { Button botanR; // ボタンを用意 Button botanG; Button botanB; //---------------------- public void init() { botanR=new Button("背景を赤にする"); add(botanR); botanR.addActionListener(this); botanG=new Button("背景を緑にする"); add(botanG); botanG.addActionListener(this); botanB=new Button("背景を青にする"); add(botanB); botanB.addActionListener(this); } //-------------------- public void actionPerformed(ActionEvent ae) { if(ae.getSource()==botanR) // 背景を赤にする { setBackground(Color.red); } if(ae.getSource()==botanG) // 背景を緑にする { setBackground(Color.green); } if(ae.getSource()==botanB) // 背景を青にする { setBackground(Color.blue); } } //-------------------- public void paint(Graphics g) { update(g); } //-------------------- public void update(Graphics g) { botanR.setForeground(Color.white); // ボタンの文字色を白にする botanR.setBackground(Color.red); // ボタンの色を赤にする botanR.setBounds(30, 20, 100, 25); // ボタンの位置と大きさ(x座標,y座標,幅,高さ) botanG.setForeground(Color.white); // ボタンの文字色を白にする botanG.setBackground(Color.green); // ボタンの色を緑にする botanG.setBounds(140, 20, 100, 25); // ボタンの位置と大きさ(x座標,y座標,幅,高さ) botanB.setForeground(Color.white); // ボタンの文字色を白にする botanB.setBackground(Color.blue); // ボタンの色を青にする botanB.setBounds(250, 20, 100, 25); // ボタンの位置と大きさ(x座標,y座標,幅,高さ) } } |
2005.01.19 |
■スライダーを設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //************************************** // slider:スライダー(Java アプレット) //************************************** import java.applet.Applet; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; //============================================ public class slider extends Applet implements ChangeListener { JSlider sliderR; // スライダーを用意 JSlider sliderG; JSlider sliderB; int red=0; int green=0; int blue=0; //---------------------------------- public void init() { setBackground(Color.white); // 背景色 sliderR = new JSlider(JSlider.HORIZONTAL,0,255,0); // 水平スライダー(垂直スライダーのときは VERTICAL) sliderR.setPaintLabels(true); // 目盛りを\表\示する sliderR.setPaintTicks(true); // 目盛りの設定 sliderR.setMajorTickSpacing(32); // 主目盛り sliderR.setMinorTickSpacing(8); // 副目盛り add(sliderR); // スライダーを表示 sliderR.addChangeListener(this); // スライダーのイベントを登録 sliderG = new JSlider(JSlider.HORIZONTAL,0,255,0); // 水平スライダー(垂直スライダーのときは VERTICAL) sliderG.setPaintLabels(true); // 目盛りを\表\示する sliderG.setPaintTicks(true); // 目盛りの設定 sliderG.setMajorTickSpacing(32); // 主目盛り sliderG.setMinorTickSpacing(8); // 副目盛り add(sliderG); // スライダーを表示 sliderG.addChangeListener(this); // スライダーのイベントを登録 sliderB = new JSlider(JSlider.HORIZONTAL,0,255,0); // 水平スライダー(垂直スライダーのときは VERTICAL) sliderB.setPaintLabels(true); // 目盛りを\表\示する sliderB.setPaintTicks(true); // 目盛りの設定 sliderB.setMajorTickSpacing(32); // 主目盛り sliderB.setMinorTickSpacing(8); // 副目盛り add(sliderB); // スライダーを表示 sliderB.addChangeListener(this); // スライダーのイベントを登録 } //--------------------------------- public void stateChanged(ChangeEvent ce) { if(ce.getSource()==sliderR) { red=sliderR.getValue(); } if(ce.getSource()==sliderG) { green=sliderG.getValue(); } if(ce.getSource()==sliderB) { blue=sliderB.getValue(); } repaint(); } //---------------------------------- public void paint(Graphics g) { update(g); } //---------------------------------- public void update(Graphics g) { super.paint(g); // (場合によってはこの行は必要なし。スライダーが表示されないときは必要。) sliderR.setForeground(Color.white); // スライダーの文字色 sliderR.setBackground(Color.red); // スライダーの色 sliderR.setBounds(20, 20, 300, 50); // スライダーの位置と大きさ(x座標,y座標,幅,高さ) sliderG.setForeground(Color.white); // スライダーの文字色 sliderG.setBackground(Color.green); // スライダーの色 sliderG.setBounds(20, 80, 300, 50); // スライダーの位置と大きさ(x座標,y座標,幅,高さ) sliderB.setForeground(Color.white); // スライダーの文字色 sliderB.setBackground(Color.blue); // スライダーの色 sliderB.setBounds(20, 140, 300, 50); // スライダーの位置と大きさ(x座標,y座標,幅,高さ) g.setColor(new Color(red,green,blue)); g.fillRect(20,220,300,150); g.setColor(Color.white); g.drawString("R="+red+" G="+green+" B="+blue, 50, 280); } } |
2005.01.19 |
■スクロールバーを設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //********************************************* // scrollbar:スクロールバー(Java アプレット) //********************************************* import java.applet.Applet; import java.awt.*; //======================================== public class scrollbar extends Applet { Scrollbar scrollR; // スクロールバーを用意 Scrollbar scrollG; Scrollbar scrollB; int red=0; int green=0; int blue=0; //---------------------------------- public void init() { // スクロールバーの設定 scrollR=new Scrollbar(Scrollbar.HORIZONTAL,128,1,0,255); // (VERTICAL または HORIZONTAL, 初期値, バーサイズ, 最小値, 最大値) add(scrollR); scrollG=new Scrollbar(Scrollbar.HORIZONTAL,128,1,0,255); add(scrollG); scrollB=new Scrollbar(Scrollbar.HORIZONTAL,128,1,0,255); add(scrollB); } //--------------------------------- public boolean handleEvent(Event e) { if(e.target==scrollR) { red=scrollR.getValue(); } if(e.target==scrollG) { green=scrollG.getValue(); } if(e.target==scrollB) { blue=scrollB.getValue(); } repaint(); return true; } //--------------------------------- public void paint(Graphics g) { update(g); } //--------------------------------- public void update(Graphics g) { scrollR.setBackground(Color.red); // スクロールバーの色 scrollR.setBounds(20, 20, 280, 20); // スクロールバーの位置と大きさ(x座標,y座標,幅,高さ) scrollG.setBackground(Color.green); // スクロールバーの色 scrollG.setBounds(20, 50, 280, 20); // スクロールバーの位置と大きさ(x座標,y座標,幅,高さ) scrollB.setBackground(Color.blue); // スクロールバーの色 scrollB.setBounds(20, 80, 280, 20); // スクロールバーの位置と大きさ(x座標,y座標,幅,高さ) g.setColor(new Color(red,green,blue)); g.fillRect(20, 130, 280, 150); g.setColor(Color.white); g.drawString("R="+red+" G="+green+" B="+blue, 50, 200); } } |
2005.01.19 |
■スクロールリスト(リストボックス)を設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //************************************** // list:スクロールリスト(Java アプレット) //************************************** import java.applet.Applet; import java.awt.*; import java.awt.event.*; //============================================ public class list extends Applet implements ItemListener { List list; // リストを用意 int Num=0; String Name=""; //---------------------------------- public void init() { list=new List(3,false); // (項目数, 複数選択かどうか) // 項目数は、一度に表示される項目数(ただし、自分でボックスサイズを指定した場合は関係しない) // false:1項目のみ選択可能 true:複数選択可能) list.add("項目0"); list.add("項目1"); list.add("項目2"); list.add("項目3"); list.add("項目4"); this.add(list); list.addItemListener(this); } //---------------------------------- public void itemStateChanged(ItemEvent e) { if(e.getSource()==list) { Num=list.getSelectedIndex(); // 選択番号(何番目を選択したかを取得する) Name=list.getSelectedItem(); // 選択項目(どの項目を選択したかを取得する) repaint(); } return; } //---------------------------------- public void paint(Graphics g) { update(g); } //---------------------------------- public void update(Graphics g) { g.setColor(new Color(255, 255, 200)); // 背景色 g.fillRect(0, 0, 250, 120); g.setColor(Color.black); g.drawString("選択してください", 10, 20); list.setBackground(new Color(70, 100, 50)); // リストボックスの色 list.setForeground(new Color(160, 220, 160)); // 項目名の文字色 list.setFont(new Font("TimesRoman",Font.PLAIN,12)); // 項目名のフォント list.setBounds(20, 30, 80, 60); // リストボックスの位置と大きさ(x座標,y座標,幅,高さ) g.setColor(Color.black); g.drawString("選択番号="+Num, 130, 40); g.drawString("選択項目="+Name, 130, 60); } } |
2005.05.19 |
■チョイスを設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //************************************** // choice:チョイス(Java アプレット) //************************************** import java.applet.Applet; import java.awt.*; import java.awt.event.*; //============================================ public class choice extends Applet implements ItemListener { Choice choice; // チョイスを用意 int Num=0; String Name=""; //---------------------------------- public void init() { choice=new Choice(); this.add(choice); choice.addItem("項目0"); choice.addItem("項目1"); choice.addItem("項目2"); choice.addItem("項目3"); choice.addItem("項目4"); choice.addItemListener(this); } //---------------------------------- public void itemStateChanged(ItemEvent e) { if(e.getSource()==choice) { Num=choice.getSelectedIndex(); // 選択番号(何番目を選択したかを取得する) Name=choice.getSelectedItem(); // 選択項目(どの項目を選択したかを取得する) repaint(); } return; } //---------------------------------- public void paint(Graphics g) { update(g); } //---------------------------------- public void update(Graphics g) { g.setColor(new Color(255,200,200)); // 背景色 g.fillRect(0,0,300,120); g.setColor(Color.black); g.drawString("選択してください",10,20); choice.setBackground(new Color(255,100,100)); // チョイスの色 choice.setForeground(new Color(0,0,200)); // 項目名の文字色 g.setColor(Color.black); g.drawString("選択番号="+Num,50,60); g.drawString("選択項目="+Name,50,80); } } |
2005.05.19 |
■チェックボックスを設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //************************************** // checkbox:チェックボックス(Java アプレット) //************************************** import java.applet.Applet; import java.awt.*; import java.awt.event.*; //============================================ public class checkbox extends Applet implements ItemListener { Checkbox chbox1; // チェックボックスを用意 Checkbox chbox2; // チェックボックスを用意 Checkbox chbox3; // チェックボックスを用意 String mess1=""; String mess2=""; String mess3=""; //---------------------------------- public void init() { chbox1=new Checkbox("項目1"); chbox2=new Checkbox("項目2"); chbox3=new Checkbox("項目3"); this.add(chbox1); this.add(chbox2); this.add(chbox3); chbox1.addItemListener(this); chbox2.addItemListener(this); chbox3.addItemListener(this); } //---------------------------------- public void itemStateChanged(ItemEvent e) { if(e.getSource()==chbox1) { boolean ch1=chbox1.getState(); // チェックの有無を取得する if(ch1){mess1="項目1を選択";} else {mess1="";} repaint(); return; } if(e.getSource()==chbox2) { boolean ch2=chbox2.getState(); // チェックの有無を取得する if(ch2){mess2="項目2を選択";} else {mess2="";} repaint(); return; } if(e.getSource()==chbox3) { boolean ch3=chbox3.getState(); // チェックの有無を取得する if(ch3){mess3="項目3を選択";} else {mess3="";} repaint(); return; } } //---------------------------------- public void paint(Graphics g) { update(g); } //---------------------------------- public void update(Graphics g) { g.setColor(new Color(200, 255, 255)); // 背景色 g.fillRect(0, 0, 250, 200); g.setColor(Color.black); g.drawString("チェックを入れてください", 10, 30); chbox1.setForeground(Color.blue); // チェックボックスの文字色 chbox1.setBackground(Color.red); // チェックボックスの色 chbox1.setBounds(20, 40, 60, 20); // チェックボックスの位置と大きさ(x座標,y座標,幅,高さ) chbox2.setForeground(Color.black); // チェックボックスの文字色 chbox2.setBackground(Color.green); // チェックボックスの色 chbox2.setBounds(20, 60, 60, 20); // チェックボックスの位置と大きさ(x座標,y座標,幅,高さ) chbox3.setForeground(Color.white); // チェックボックスの文字色 chbox3.setBackground(Color.blue); // チェックボックスの色 chbox3.setBounds(20, 80, 60, 20); // チェックボックスの位置と大きさ(x座標,y座標,幅,高さ) g.setColor(Color.black); g.drawString(""+mess1, 130, 55); g.drawString(""+mess2, 130, 75); g.drawString(""+mess3, 130, 95); } } |
2005.05.19 |
■テキストフィールドを設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //************************************** // textField:テキストフィールド(Java アプレット) //************************************** import java.applet.*; import java.awt.*; import java.awt.event.*; //================================================ public class textField extends Applet implements ActionListener { TextField fieldA; // テキストフィールドを用意 TextField fieldB; String textA="A"; String textB="B"; //---------------------- public void init() { fieldA=new TextField("おはよう"); // デフォルト文字 add(fieldA); fieldA.addActionListener(this); fieldB=new TextField("こんばんは"); // デフォルト文字 add(fieldB); fieldB.addActionListener(this); } //-------------------- public void actionPerformed(ActionEvent ae) { textA=fieldA.getText(); // テキストフィールドA に入力された文字を取得する textB=fieldB.getText(); // テキストフィールドA に入力された文字を取得する fieldB.setText(textA); // テキストフィールドA で取得したものを テキストフィールドB 内に表示してみる fieldA.setText("こんにちは"); // テキストフィールドA 内 を新たな文字に変える repaint(); } //-------------------- public void paint(Graphics g) { update(g); } //-------------------- public void update(Graphics g) { fieldA.setFont(new Font("TimesRoman",Font.PLAIN,12)); // テキストフィールドA のフォント fieldA.setForeground(Color.black); // テキストフィールドA の文字色を黒にする fieldA.setBackground(Color.yellow); // テキストフィールドA の色を黄にする fieldA.setBounds(30, 20, 200, 25); // テキストフィールドA の位置と大きさ(x座標,y座標,幅,高さ) fieldB.setFont(new Font("TimesRoman",Font.PLAIN,12)); // テキストフィールドB のフォント fieldB.setForeground(Color.red); // テキストフィールドB の文字色を赤にする fieldB.setBackground(Color.blue); // テキストフィールドB の色を青にする fieldB.setBounds(30, 50, 200, 25); // テキストフィールドB の位置と大きさ(x座標,y座標,幅,高さ) } }(注)TextField は、1行入力に限定。 複数行にわたるテキスト入力には、次の TextArea を用いる。 |
2005.11.16 |
■テキストエリアを設置する ◆このページのトップへ | 更新日 | |
Javaアプレット |
このアプレットのcodeは次のものです。 //************************************** // textArea:テキストエリア(Java アプレット) //************************************** import java.applet.*; import java.awt.*; //================================================ public class textArea extends Applet { TextArea area; // テキストエリアを用意 String text="A"; //---------------------- public void init() { area=new TextArea("おはよう"); // デフォルト文字 add(area); } //-------------------- public void paint(Graphics g) { update(g); } //-------------------- public void update(Graphics g) { area.setFont(new Font("TimesRoman",Font.PLAIN,12)); // テキストエリア のフォント area.setForeground(Color.black); // テキストフエリア の文字色を黒にする area.setBackground(Color.yellow); // テキストエリア の色を黄にする area.setBounds(30, 20, 200, 100); // テキストエリア の位置と大きさ(x座標,y座標,幅,高さ) text=area.getText(); // テキストエリア に入力された文字を取得する g.drawString(""+text, 30, 150); } }(注)1行入力に限定する場合は 上の TextField の方を用いる。 |
2005.11.16 |
■マウスイベント(マウスに反応させる) ◆このページのトップへ | 更新日 | |
Javaアプレット |
次の4つの方法がある。 (1) マウスをクリック、アプレット上に入る、アプレットから出る、マウスボタンを押す、マウスボタンを離すときに反応させるには、MouseListenerを使う。 (2) マウスを動かす、マススをドラッグするときに反応させるには、MouseMotionListenerを使う。 (3) (1)(2)の場合で記述を簡単にするため、アダプタMouseAdapterを使う方法。 (4) (1)(2)の場合をboolean型でやる方法(これが一番簡単)。 以下これらを順次説明する。 (1)の方法 import java.applet.Applet; import java.awt.*; import java.awt.event.*; //----------------------- public class sample extends Applet implements MouseListener // MouseListenerインターフェイスを実装する { … public void init() { addMouseListener(this); // イベントを受け取る準備をする … } public void mouseClicked(MouseEvent me) // マウスをクリックされたとき { …(処理を記述する) } public void mouseEntered(MouseEvent me) // マウスポインタがアプレットに入ったとき { … } public void mouseExited(MouseEvent me) // マウスポインタがアプレットから出たとき { … } public void mousePressed(MouseEvent me) // マウスボタンが押されたとき { … } public void mouseReleased(MouseEvent me) // マウスボタンが離されたとき { … } }(上の5つのメソッドは、1つしか使わなくてもすべて定義しておかなくてはならない。これが面倒ならば、(3)で説明する アダプタ と呼ばれるクラスを使って簡単にする方法がある) 例えば、マウスをクリックしたとき、クリックした位置を取得するには public void mouseClicked(MouseEvent me) // マウスをクリックしたとき { int x; int y; x=me.getX(); y=me.getY(); }とする。 (2)の方法 import java.applet.Applet; import java.awt.*; import java.awt.event.*; //----------------------- public class sample extends Applet implements MouseMotionListener // MouseMotionListenerインターフェイスを実装する { … public void init() { addMouseMotionListener(this); // イベントを受け取る準備をする … } public void mouseMoved(MouseEvent me) // マウスが移動したとき { … } public void mouseDragged(MouseEvent me) // マウスがドラッグされたとき { … } }(上の2つのメソッドは、1つしか使わなくてもすべて定義しておかなくてはならない。これが面倒ならば、(3)で説明する アダプタ と呼ばれるクラスを使って簡単にする方法がある) (3)の方法 … (1)の場合を簡単に記述する方法 で説明するが、(2)の場合も同様である。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; //----------------------- public class sample extends Applet { … public void init() { … addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent me) // マウスをクリックしたとき { … } }); } … }(この場合は使わないメソッドは定義しておかなくてもよい) (4)の方法 import java.applet.Applet; import java.awt.*; //----------------------- public class sample extends Applet { … public boolean mouseDown(Event evt, int x, int y) // マウスボタンが押されたとき { … return true; } public boolean mouseDrag(Event evt, int x, int y) // マウスがドラッグされたとき { … return true; } }x, y でマウスの位置が取得されているので便利。 次の6つのメソッドが用意されている。使わないメソッドは定義しておかなくてもよい。 mouseEnter(Event evt, int x, int y) // マウスポインタがアプッレトに入ったとき mouseExit(Event evt, int x, int y) // マウスポインタがアプッレトから出たとき mouseDown(Event evt, int x, int y) // マウスボタンが押されたとき mouseUp(Event evt, int x, int y) // マウスボタンが離されたとき mouseDrag(Event evt, int x, int y) // マウスがドラッグされたとき mouseMove(Event evt, int x, int y) // マウスが移動したとき |
2005.02.27 |
■キーイベント(キーに反応させる) ◆このページのトップへ | 更新日 | |
Javaアプレット |
キーに反応させるには、ボタンも設置し次のようにする。import java.applet.*; import java.awt.*; import java.awt.event.*; //---------------------------- public class sample extends Applet implements KeyListener, ActionListener { Button botan; // ボタン int keyNum; //----------------------- public void init() { botan=new Button("キー入力できない時押す"); add(botan); botan.addActionListener(this); botan.addKeyListener(this); requestFocus(); } //---------------- public void actionPerformed(ActionEvent ae) { if(ae.getSource()==botan) { return; } } //--------------- public void keyTyped(KeyEvent ke){} public void keyReleased(KeyEvent ke){} public void keyPressed(KeyEvent ke) // キーを押しているときに呼び出される { keyNum=ke.getKeyCode(); // 押したキーのキーコードナンバーを取得する repaint(); return; } //---------------------------------- public void paint(Graphics g) { update(g); } //---------------------------------- public void update(Graphics g) { botan.setForeground(Color.black); // ボタンの文字色を黒にする botan.setBackground(Color.white); // ボタンの色を白にする botan.setBounds(30, 20, 150, 25); // ボタンの位置と大きさ(x座標,y座標,幅,高さ) g.setColor(new Color(0xffff00)); g.fillRect(30, 70, 150, 40); g.setFont(new Font("TimesRoman", Font.PLAIN, 16)); g.setColor(new Color(0x0000ff)); g.drawString("keyNum="+keyNum, 40, 90); } }以上である。 |
2009.01.01 |
■リンクのURLに飛ぶ、リンクのURLを別画面で表示 ◆このページのトップへ | 更新日 | |
Javaアプレット |
アプレット内で別のURLをリンクし、マウスでクリックしたとき、そのURLへ飛ぶには、次のようにする。try { URL newURL=new URL("http://yokatoki.sakura.ne.jp"); // リンク先のURL getAppletContext().showDocument(newURL); // リンク先へ飛ぶ } catch(MalformedURLException er){}(実際例) //**************************** // リンクのURLに飛ぶ //**************************** import java.applet.*; import java.awt.*; import java.net.*; //---------------------------------------------------------- public class sample extends Applet { //-------------------------------------------- public void init() { } // マウス------------------------------------- public boolean mouseDown(Event evt, int ix, int iy) { if(ix>50 && ix<230 && iy>20 && iy<40) { try { URL newURL=new URL("http://yokahi.sakura.ne.jp"); // ここに、リンク先のURLを書く getAppletContext().showDocument(newURL); // リンク先へ飛ぶ } catch(MalformedURLException er){} } return true; } // ペイント----------------------------------- public void paint(Graphics g){update(g);} public void update(Graphics g) { g.setColor(Color.cyan); g.fillRect(50, 20, 180, 20); g.setColor(Color.red); g.setFont(new Font("", Font.PLAIN, 14)); g.drawString("よかひよかときホームへ", 55, 35); } }以上である。 (注) なぜか appletviewer では作動しない。コンパイルした後 アプレットを記述した html を起動すれば作動する。 ○ 別画面で表示させるには、URL newURL=new URL("http://yokahi.sakura.ne.jp"); のところに、"_blank" を付けて、 URL newURL=new URL("http://yokahi.sakura.ne.jp", "_blank"); のようにする。 ○ ボタンを作って、ボタンをクリックしたとき飛ぶようにするには、ボタン動作の部分に赤記述の部分を同様に使用すればよい。 |
2009.02.24 |