|
|
使用頻度大のものをコピー&ペーストで使えるよう 「覚え書」 としたものです。 参考になれば喜。 動作確認は自責で。 | |||
| 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 |