Object Oriented Programming Java Language Introduction for Python

Object Oriented Programming Java Language Introduction for Python programmer Lecture 6 Tatsuo Minohara

キー入力・マウス入力のInterface interface Key. Listener ➡ キー入力 interface Mouse. Listener ➡ マウス入力 interface Mouse. Motion. Listener ➡ マウスの移動やドラッグを監視 interface Mouse. Wheel. Listener ➡ マウスのホィールの回転を扱う


key. Pressedとkey. Typedの違い 大文字のA ➡ Shift ↓ + a ↑ + Shift ↑


入力されたキーを判別 key. Pressed/key. Releasedでは ➡ int get. Key. Code( ) key. Typedでは ➡ char get. Key. Char( )



mouse. Pressed vs. mouse. Clicked clickedは、2回〜 4回クリックまでカウントもできる










Mouse. Wheelリスナー・インタフェースを追加で入れる ➡ implements Mouse. Wheel. Listener アプレット自身がリスナーになることをinitメソッドの中で追 加 ➡ add. Mouse. Wheel. Listener( this ); mouse. Wheel. Movedメソッドを定義する ➡ public void mouse. Wheel. Moved( Mouse. Wheel. Event mwe )





アプリケーションでのウィンドウ 例: import java. awt. *; public class Sample. Frame extends Frame { Sample. Frame( ) { super( "Sample" ); set. Size( 300, 300 ); set. Visible( true ); } public void paint( Graphics g ) { g. set. Color( Color. blue ); g. draw. Line( 10, 200, 200 ); } public static void main( String [ ] args ) { new Sample. Frame( ); }




クローズボックスでの終了 Frameを使った場合 ➡ Window. Adapterを用意してclosingとclosedを再定 義する ➡ closingで、set. Visible( false ); dispose( ); を実行 ➡ closedで、System. exit( 0 ); を実行 JFrameを使った場合 ➡ set. Default. Close. Operation( )で指定できる ➡ JFrame. EXIT_ON_CLOSEで同じ動作になる



スマートコンポーネント 自分自身で描画メソッドを持つ、このようなコンポー ネ ン ト を ス マ ー ト コ ン ポ ー ネ ン ト ( Smart Component)と呼ぶ。 例: class Packman. Panel extends Panel { int current = 0; Color [] clist = {Color. red, Color. blue, Color. green}; public void paint( Graphics g ) { g. set. Color( clist[ current ] ); g. fill. Arc( 10, 100, 45, 270 ); } public void increment( ) { current = (current+1) % clist. length; repaint( ); } }


実際に記述してみた例 try { ➡ int y = 10 / 0; } catch( Exception ex ) { ➡ System. err. println( ex ); ➡ ex. print. Stack. Trace( ); }


例外のクラス Exception ➡ AWTException…AWTの描画の失敗 ➡ IOException…入出力の失敗 ➡ Instatiation. Exception…オブジェクトの生成の失敗 ➡ Interrupt. Exception…途中で割り込みされた ➡ Runtime. Exception…実行時の例外 ✴ Arithmetic. Exception…算術計算の失敗 ✴ Illegal. Argument. Exception…不正な引数 ✴ Index. Outof. Bounds. Exception…配列のインデックス ✴ Negative. Array. Size. Exception…配列のサイズが負 ✴ Null. Pointer. Exception…オブジェクトを指す変数がnull










Applicationでの画像・音声 音声…Appletクラスのnew. Audio. Clipメソッドを使う アドレスの指定…java. netパッケージのURLクラス ➡ URL url = new URL( "http: //www. anyware/sounds/spacemusic. au" ); ➡ Audio. Clip ac = Applet. new. Audio. Clip( url ); 画像…Toolkitクラスのget. Imageメソッドを使う ➡ URL url = new URL( "file: ///" System. get. Property( "user. dir" )+"/boy 1. gif" ); ➡ Image boyimage = get. Toolkit( ). get. Image( url ); +


読む為の書き方(Application) import java. io. *; Buffer. Reader br new Buffer. Reader( new File. Reader( "filename" ) ); = while ( br. ready( String line = br. read. Line( ); { } br. close( ); ただし、try〜catchで囲む必要がある。 ) )

書く為の書き方(Application) Print. Writerを用いる Print. Wirter pw = new Print. Writer( new File. Writer( "info" ) ); Print. Wirter pw = new Print. Writer( new File. Writer( "info", true ) ); // ファイルの最後に追加する Print. Writerクラスのオブジェクトは、printやprintlnという名前 のメソッドを持っており、これらはSystem. out. printlnなどで使 ってきた使い方と同じ pw. println( "Sample output data for using local file. " ); pw. println( "data: " + 5 * 40 + " mm " ); pw. close( );


読むための書き方(Applet) import java. io. *; import java. net. *; URL url = new URL( get. Code. Base( ), "filename" ); Buffered. Reader br = new Buffered. Reader( new Input. Stream. Reader( url. open. Stream( ) ) ); while ( br. ready( ) ) { String line = br. read. Line( ); } br. close( ); ただし、try〜catchで囲む必要がある。

Networkへのアクセス(Application) import java. io. *; import java. net. *; URL url = new URL( "http: //urladdress" ); Buffered. Reader br = new Buffered. Reader( new Input. Stream. Reader( url. open. Stream( ) ) ); while ( br. ready( ) ) { String line = br. read. Line( ); } br. close( ); ただし、try〜catchで囲む必要がある。




入力ストリームでエンコード指定 アプレット/ネットワークアクセスの場合 ➡ ➡ Input. Stream. Readerの2番目のパラメータで指定 Buffered. Reader br = new Buffered. Reader( new Input. Stream. Reader( url. open. Stream( ), "UTF-8" ) ); アプリケーションの場合 ➡ ➡ 一度Input. Stream. Readerを介して、その2番目のパラメー タで指定 Buffer. Reader br = new Buffer. Reader( new Input. Stream. Reader( new File. Input. Stream( "filename" ), "UTF-8" ) );




runメソッドの書き方は決まっている public void run( ) { try { while ( runner == Thread. current. Thread( ) ) { スレッドで行ないたいこと Thread. sleep( ミリ秒 ); } } catch ( Exception exc ) { } }


- Slides: 61