Java 2 - Lesson01

Similar documents
Java 2 - Lesson01

Java 2 - Lesson01

awt の主要なクラスを下記に示す クラス Component Container Button Label Panel Frame 説明画面にユーザインターフェイス要素として表示し, ユーザとのやり取りを行うコンポーネントを表すすべてのコンポーネントのスーパークラスになる ほかのコンポーネントを含

public class MyFrame { private JPanel panel1; private JPanel panel2; private JPanel panel3; private JPanel panel4; private JLabel label1; private JTex

Microsoft PowerPoint - prog12.ppt

Java言語 第1回

ガイダンス

ガイダンス

ガイダンス

ガイダンス

ガイダンス

public class Kadai _02 { public static void main(string[] args) { MyFrame frame = new MyFrame("Kadai _02"); (2) フレームのクラス名は MyFrame とし 以下

Microsoft PowerPoint - OOP.pptx

<4D F736F F F696E74202D AC C8899E D834F E >

Microsoft PowerPoint - swing2.ppt

アプレットⅢ

アジェンダ 1 グラフィカルなインタフェース GUI(Graphical User Interface) の基礎 2 Swing を利用する Swing の基礎知識 2

GUIプログラムⅣ

Prog1_12th

Java言語 第1回

PowerPoint Presentation

< F2D E E6A7464>

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

text_12.dvi

Prog1_12th

PowerPoint Presentation

GUI プログラミング第 4 Graph ~ 手書認識と関数グラフ描画 ~ マウスで数式を書いて認識し 関数グラフを描画する < 手書認識とグラフ描画のステップ> ステップ 1_1 フレームの作成 ステップ 1_2 マウスで自由に線を書く ステップ 2-1 手書認識認識結果を標準出力する ステップ

ソフトウェア基礎演習 課題

GUIプログラムⅤ

< F2D B825082CC96E291E82E6A7464>

Java 2 - Lesson01

Microsoft Word - Java4.DOC

2

Prog2_11th

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

B 10 : N ip2003f10.tex B : 9/12/ :02 p.1/71

次の演習課題(1),(2)のプログラムを完成させよ

Java言語 第1回

2

< F2D B838A835882CC8CF68EAE2E6A7464>

Java言語 第1回

< F2D834F838C A815B A CC>

最初に

< F2D A838B838D96402E6A7464>

GUIプログラムⅡ

text_13.dvi

自宅でJava言語の開発環境を作る方法

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

アトミックコンポーネント ( 部 品 )<ボタン, 文 字 > 中 間 コンテナ ( 部 品 を 置 く 場 所 ) トップレベルコンテナ (GUI を 表 示 するための 場 所.コンテントペイン) Swingコンポーネントを 利 用 する 手 順 サンプル 10.1 (Helo.java)につい

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

Microsoft PowerPoint - swing3.ppt

PowerPoint プレゼンテーション

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

第1章 ビジュアルプログラミング入門

< F2D A839382CC906A2E6A7464>

Java - Visual Editor

PowerPoint プレゼンテーション

< F2D89BA8EE882C E6A7464>

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog13.ppt

< F2D82B682E182F182AF82F12E6A7464>

Microsoft PowerPoint - prog13.ppt

PowerPoint プレゼンテーション

< F2D825282CC947B909482CC A815B83682E6A>

< F2D8EA CE909482CC92EA82852E6A7464>

< F2D F B834E2E6A7464>

< F2D92DE82E8914B82CC977088D32E6A7464>

ウィンドウの構成ウィンドウはタイトルバーとウィンドウ枠からなります タイトルバーには最小化 / 最大化ボタンや閉じるボタンがあります また ウィンドウはクライアント領域をもちます クライアント領域にはボタンなど GUI 部品が配置されます GUI 部品配置 ( レイアウト ) ウィンドウ ( ステー

< F2D82518CC282CC D2E6A7464>

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

MyEventHandler actionhandler = new MyEventHandler(); m.addeventhandler(actionevent.any, actionhandler); // レイアウト BorderPane を生成 / 設定します BorderPane bp

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

ÿþ˜u#u·0¹0Æ0à0

Microsoft PowerPoint - prog11.ppt

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

ラベルを管理するクラス Label ラベルはクラス Label により管理され 各種設定を行うメソッドが準備されています ラベルの生成 new Label("1. 通常のラベルです "); ラベルのサイズ setprefsize(200,100); ラベル文字が 1. 通常のラベルです で横 200

Java プログラミング講習会 第 2 回 芝浦工業大学工学部情報工学科杉本徹 2017 年 3 月 27 日 public class Person { String familyname; String firstname; int age; } public void print() { Sy

Microsoft PowerPoint - prog11.ppt

JavaプログラミングⅠ

Applet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet

ブロック崩し Step1 矢印キーで左右に動かせるパドルを描画する < パドルの表現方法 > パドルは java.awt パッケージの Rectangle という Java が用意しているクラスを使う これは四角形を表すクラスで 左上の点の座標と幅 高さをもっている (x, y) Rectangle

問1

Prog2_15th

Microsoft PowerPoint ppt

(Microsoft Word - java\221n\221\242\203\214\203|\201[\203g.doc)

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

Microsoft Word - 第七週Java講座.docx

I 4 p.2 4 GUI java.awt.event.* import /* 1 */ import mouseclicked MouseListener implement /* 2 */ init addmouselistener(this) this /* 3 */ this mousec

第1章 ビジュアルプログラミング入門

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

C#の基本

5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2;

Prog2_12th

Microsoft PowerPoint ppt

Animals サンプル Step 1 動物の種類を指定しておいて クリックした場所に画像を貼り付ける < レイアウトについて > 前回は ラベルやボタンの位置を座標で設定した Absolute Layout を選んだためである レイアウトは どのようにボタンなどのコンポーネントを配置するかを決定す

第1章 ビジュアルプログラミング入門

プログラミング入門1

Transcription:

Welcome to プログラミング演習 2 Instructor: Jianhua MA TA: 池邉曜 and 李漠 (LI Mo) Course HP URL: https://cis.k.hosei.ac.jp/~jianhua/course/j2/ 1

第 1 回 GUI (Graphics User Interface) 基礎とコンポーネントの作成 キーポイント GUI コンポーネント - GUI とは何か - GUI コンポーネントクラス - コンポーネントの作成 2

GUI(Graphics User Interface) とは Java ではグラフィカルなコンポーネント ( 部品 ) を用いたアプリケーション開発用に Swing という GUI ライブラリが用意されている ボタン ラベル テキスト 図形などをグラフィックとして描画する AWT(Abstract Window Toolkit) という GUI ライブラリも用意されているが Swing は使用できるコンポーネントなどが大きく増えたもの 3

GUI (Graphics User Interface) GUI コンポーネント ( 部品 ) Label ラベル TextField テキストフィールド Checkbox チェックボックス Button 押しボタン Choice 選択ボタン CheckboxGroup チェックボックスグルプラジオボタン List 選択リスト TextArea テキストエリア

java.awt パッケージ中の GUI コンポーネントとクラス継承階層 java.lang.object TextField TextComponent CheckboxGroup TextArea Button java.lang.object +--java.awt.component +--java.awt.label Component Label FlowLayout Container Panel Java.applet.Applet List Window Frame BorderLayout Choice GridLayout Checkbox 三種類のレイアウトコンポーネント配置 GUI Components

GUI コンポーネントの階層 javax.swingパッケージ中のswingコンポーネントは以下の3 階層に分類される JFrame トップレベルコンテナ (JFrame 等 ) メインウィンドウとなるコンポーネント 土台の役割 中間コンテナ (JPanel 等 ) コンポーネント配置のためのコンテナの役割 コントロール (JLabel JButton 等 ) ボタンやラベルなどの GUI コンポーネント Component Swing ではこれらの階層のコンポーネントを組み合わせて作成する JPanel1 JPanel2 6

GUI コンポーネント Swing は以下のような GUI コンポーネントを持つ JDialog( 標準ダイアログ ) JButton / JToggleButton( ボタン ) JCheckBox / JRadioButton ( チェックボックス ラジオボタン ) JMenuItem / JMenuBar / JMenu / JCheckBoxMenuItem / JRadioButtonMenuItem ( メニュー関連のコンポーネント ) JComboBox( ドロップダウンリスト ) JLabel / JTextArea / JTextPane( テキスト イメージ関連 ) JScrollBar( スクロールバー ) JToolBar( ツールバー ) etc.. 7

フレームの作成 (JFrame クラス ) ボタンやラベルなどのコンポーネントを配置するためのフレームを作成する import javax.swing.*; public class Practice01{ JFrame jf; //Swing をインポート public static void main(string[] args){ new Practice01(); public Practice01(){ jf = new JFrame("My Test"); // フレームのサイズと位置を設定 jf.setsize(300,350); jf.setlocation(400,200); // フレームを閉じた時にプログラムを終了 jf.setdefaultcloseoperation(jframe.exit_on_close); 演習課題を作成し 各要素の機能を理解して下さい // フレームの表示 (false で非表示 ) // コードの最後に記述して下さい ( コンポーネントの配置が終わる前に表示してしまうため ) jf.setvisible(true); 8

パネルの作成 (JPanel クラス ) ボタンやラベルなどのコンポーネントを貼りつけたり レイアウトを設定することができる public class Practice01{ /* フレームの記述は省略 */ JFrame jf; JPanel jpmain, jpsub; public static void main(string[] args){ new Practice01(); public Practice01(){ jpmain = new JPanel(); //Panel の色を指定 jpmain.setbackground(color.red); jpsub = new JPanel(); //Panel のサイズ Dimension は幅と高さの 2 値 jpsub.setpreferredsize(new Dimension(100,100)); jpsub.setbackground(color.blue); jpmain jpsub //Frame に Panel を追加と位置の指定 jf.add(jpmain, Center"); jf.add(jpsub,"south"); 色指定は java.awt の Color クラスのオブジェクトで行うので Import が必要 (import java.awt.color.*;) 9

パネルのレイアウト デフォルト設定の FlowLayout や BorderLayout GridLayout などのレイアウトマネージャが用意されている public class LayoutTest { public static void main(string[] args){ JFrame jf = new JFrame("LayoutTest"); JPanel jp1, jp2; JButton b1,b2,b3,b4,b5,b6,b7,b8; //(Button と Panel の定義は省略しています ) LayoutTest という名前のクラスを作成し 動作を確認して下さい jp1.setlayout(new BorderLayout()); // 宣言はなくても可 jp2.setlayout(new FlowLayout()); jp1.add(b1,"north"); // 以下のようにも書ける //jp1.add(b1,borderlayout.north); jp1.add(b2,"center"); jp1.add(b3,"south"); jp1.add(b4,"west"); jp1.add(b5,"east"); jp2.add(b6); jp2.add(b7); jp2.add(b8); jp1 jf.add(jp1,"center"); jf.add(jp2,"south"); jp2 jf.setsize(300, 300); jf.setvisible(true); jf.setdefaultcloseoperation(jframe.exit_on_close); 10

コンポーネントの作成 ( ラベル ボタン テキストフィールド ) ボタンやラベルなどのコンポーネントを配置するためのフレームを作成する public class Practice01{ public Practice01(){ //jf.add(jpsub, South ); //(jpsub パネルは使用しない ) JLabel jl = new JLabel( This is a label ); // ラベルの作成 jpmain.add(jl); //Panel に追加 // ボタンの作成 ( 引数にボタン上に表示されるテキストを与える ) JButton jb = new JButton( This is a button in teaching code ); jpmain.add(jb); // テキストフィールドの作成 ( 引数にテキストフィールド上に表示されるテキストを与える ) JTextField jtf = new JTextField( This is a text field in teaching code, 20); jpmain.add(jtf); JTextField jtf1 = new JTextField(20); jpmain.add(jtf1); 11

コンポーネントの前景色 背景色 透明 / 非透明 コンポーネントには前景色 ( 文字色 ) と背景色 ( コンポーネントの背景 ) 背景色の透明化の設定ができる public class Practice01{ public Practice01(){ JLabel jl = new JLabel(" I'm a label "); // 文字色の指定 jl.setforeground(color.red); // 背景の透明 非透明の設定 (false で透明 ) jl.setopaque(true); jpmain.add(jl); JButton jb = new JButton( This is a button in teaching code ); // 文字色と背景色の指定 ( ボタン以外のコンポーネントでも指定できる ) jb.setforeground(color.blue); jb.setbackground(color.black); jpmain.add(jb); 12

コンポーネントの作成 ( チェックボックス ) public class Practice01{ public Practice01(){ JLabel jlcareer = new JLabel(" Please select the careers you like: "); jpmain.add(jlcareer); JCheckBox[] jcbs = new JCheckBox[2]; jcbs[0] = new JCheckBox("Teacher"); jcbs[1] = new JCheckBox("Engieneer"); for(int i = 0; i < 2; i++){ //JCheckBox オブジェクトをそれぞれ追加 jpmain.add(jcbs[i]); 13

コンポーネントの作成 ( ラジオボックス コンボボックス ) public class Practice01{ public Practice01(){ // ラジオボタンのボタングループを作成 ButtonGroup bg_sex = new ButtonGroup(); // ラジオボタンのオブジェクトを作成 JRadioButton jrb_student = new JRadioButton( student"); // チェックを入れたい場合以下のように指定 jrb_student.setselected(true); // ラジオボタンのオブジェクトを add する jpmain.add(jrb_student ); JRadioButton jrb_teacher = new JRadioButton( teacher"); jpmain.add(jrb_teacher); bg_sex.add(jrb_student); bg_sex.add(jrb_teacher); // コンボボックスを作成 JComboBox jcb = new JComboBox(); for(int i = 1; i <= 3; i++){ // コンボボックスのアイテムを追加 jcb.additem(i); jpmain.add(jcb); 14

メニューバーの作成 ( バー ヘルプ ) メニューバーの作成と内部のアイテムの作成を行う public class Practice01{ public Practice01(){ JMenuBar jmb = new JMenuBar(); // メニューバーの作成 JMenu menu_file = new JMenu( File ); // メニューの作成 menu_file.setmnemonic( F ); //( ショートカットキー ) jmb.add(menu_file); // メニューバーにメニューを追加 JMenu menu_help = new JMenu("Help"); jmb.add(menu_help); // メニューアイテムの作成 追加 JMenuItem jmi_new = new JMenuItem("New"); menu_file.add(jmi_new); JMenuItem jmi_open = new JMenuItem("Open"); menu_file.add(jmi_open); JMenuItem jmi_save = new JMenuItem("Save"); menu_file.add(jmi_save); jf.setjmenubar(jmb); // メニューバーの追加 15

ツールバーの作成 ツールバーの作成を行うツールバーにはボタンや画像などを配置できる public class Practice01{ public Practice01(){ JToolBar jtlbar = new JToolBar(); // ツールバー内のアイテムの作成 JButton jbtnopen = new JButton(" 開く "); JButton jbtnexit = new JButton(" 終了 "); JButton jbtnhelp = new JButton(" ヘルプ "); // ツールバーに追加する jtlbar.add( jbtnopen ); jtlbar.add( jbtnexit ); jtlbar.addseparator(); // セパレータの追加 jtlbar.add( jbtnhelp ); jf.add(jtlbar, North ); // ツールバーの配置 16

画像の利用 ( ラベル ボタン ) ラベルやボタンには画像を利用することができる public static void main(string[] args){ JFrame jf = new JFrame( ImageTest"); JPanel jp = new JPanel(new FlowLayout()); ImageIcon icon1 = new ImageIcon("new.gif"); JLabel label = new JLabel(icon1); ImageIcon icon2 = new ImageIcon("save.gif"); JButton button1 = new JButton(icon2); ImageTest という名前のクラスを作成し 動作を確認して下さい ImageIcon icon3 = new ImageIcon("open.gif"); JButton button2 = new JButton(icon3); jp.add(label); jp.add(button1); jp.add(button2); jf.add(jp); jf.setsize(300, 100); jf.setvisible(true); jf.setdefaultcloseoperation(jframe.exit_on_close); 17

JFrame クラスを継承 GUI の土台となる JFrame をクラスに継承することができる JFrame のサブクラスを作成した上で JFrame のメソッドを拡張したり 新規のメソッドを追加していくことができる import javax.swing.jframe; class Practice01_2 extends JFrame{ public static void main(string args[]){ //JFrame を継承したサブクラスのオブジェクトを作成 Practice01_2 jf = new Practice01_2( MyTest2"); // コンストラクタ内に記述 Practice01_2(String title){ JButton btn1 = new JButton( Button1"); btn1.addactionlistener(this); //JFrame を継承した場合 以下のように記述することができる add(btn1); settitle(title); setsize(300,350); setlocation(400,200); setdefaultcloseoperation(jframe.exit_on_close); setvisible(true); 18

JFrame 継承クラスを用いて画面を作成 先ほど作成した Practice01 を利用して JFrame 継承クラスで再作成する JFrame クラスの使い方だけ変更する import javax.swing.jframe; //JFrame jf; //<-JFrame オブジェクトは必要ない class Practice01_3 extends JFrame{ public static void main(string args[]){ new Practice01_3("Practice01_3"); Practice01_3(String title){ // タイトルの設定 settitle(title); //JFrame を継承しているので jf.add~ や jf.set~ // というようにする必要がない setjmenubar(jmb); add(jpmain, "Center"); setsize(300,400); setlocation(400,200); setdefaultcloseoperation(jframe.exit_on_close); setvisible(true); 同じ画面を作成できる JFrame オブジェクトを作成する一手間がないので コードを綺麗に記述できる JFrame を継承する方法も JFrame オブジェクトを作成する方法も 実際にやっていることに大差はない 19

Exercise 1 次のようなデザインの GUI を Ex1BasicComponent という名前のクラスで作成して下さい (JFrame のサイズ 300x400) メニューバーを作成し アイテムを追加する ツールバーを作成し 画像を用いたアイコンを挿入する コンボボックスのアイテムは 1~9 の数字を追加する ラベル ボタン ラジオボタン コンボボックス チェックボックス テキストフィールドを配置する 背景色 テキストの色を変更したコンボボックスを作成する 上のパネルと別のパネルを用意しボタンを配置するまた 図にあるようなレイアウトにする 20