Ver.0.95. 準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!

Slides:



Advertisements
Similar presentations
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
Advertisements

6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
社会人学習講座 「Javaプログラミング概論」
GridLayout オブジェクト(省略)
         第9回 Swing.
Applet 岡部 祐典 鈴木 敬幸.
GUIコンポーネントの設定と配置 Creation and positioning of GUI components
比較プログラム言語論 平成17年7月20日 森田 彦.
JAVA GUIプログラミング 第6回 TextFieldとLabel.
JAVA GUIプログラミング 第1回 JAVAの実行 絵を描こう.
アプレット (Applet)について.
Iアプリプログラミング その1  鳥居秀徳.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
Javaレクチャー ーSwing入門ー.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
 Applet アプレット ◇長い長いアプレット講座◇.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
第14回 GUIの構成とイベント・ドリブン ~GUIを使ったプログラム(Ⅰ)~.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
システムエンジニアリング演習 GUIの実現(3):Swing 11月20日.
社会人学習講座 「Javaプログラミング概論」
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
Javaプログラムの実行まで バイト Javaの コード 実行 ソースコード Java ファイル名 ファイル名 abc.java
アプレット プログラミング 第10回 アプレット プログラミング第10回.
第11回 GUI(グラフィカル・ユーザ・インターフェース)の設計
プログラミング演習3 第2回 GUIの復習.
JAVA入門後期⑨ JAVAのSwingのメニュー処理
プログラミング演習3 第3回 ミニプロジェクト.
オブジェクト指向基礎学習Ⅱ 平成19年6月20日 森田 彦.
ライブラリを利用したGUI の実現(2):Swing 11月12日
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
Java/Swingについて (2) 2005年10月11日 海谷 治彦.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
JAVA入門後期⑦ JAVAのSwingの基本構造
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
第15回独習Javaゼミ セクション14~15 発表者 直江宗紀.
プログラミング演習3 第3回 ミニプロジェクト.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
EclipseでWekaのAPIを呼び出す
プログラミング演習3 第2回 GUIの復習.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
ソフトウェア制作論 平成30年10月3日.
Java/Swingについて (3) 2005年10月19日 海谷 治彦.
比較プログラム言語論 平成16年7月21日 森田 彦.
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
JAVA入門後期⑥ JAVAのAWTの基本構造 (レイアウトマネージャー、 ウインドウ型アプリケーション)
Java/Swingについて+ (4) 2005年10月26日 海谷 治彦.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
プログラミングⅠ 平成30年10月22日 森田 彦.
JAVA入門後期④ イベント、AWT、の基本構造、スレッド
システムエンジニアリング演習 GUIの実現(1):AWT 11月6日.
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

Ver.0.95

準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!

Swing って何? ・ Java の GUI コンポーネント集のこ と ・初期の Java から標準でサポートされていた AWT でデザイン性や 操作性の機能が乏しく本格的な GUI を実現したもので、 Sun Microsystems 社と Netscape 社が協力して作成 したもの。 l

Swing のイメージ フレームを作成しその上にペイン ( 窓ガラス ) をおき その上にボタンとフレームを置いていくイメージ

Swing コンポーネン ト ・ Window の部品 パネル・フレーム ボタン・メニュー ラベル・テキストエリア・テキストボックス ラジオボタン・チェックボックス などがある。 ・ Swing コンポーネントを利用するには import javax.swing.*; をプログラムの冒頭に必要となる。

コンポーネントと は? ・何らかの機能を持ったプログラムの部品のこと Swing import javax.swing.*; で袋を呼び出す この袋に入っていた部品のことをコンポーネントと言う 袋から取り出された部 品

Swing の実行方法 javac XXX.java java XXX 普通に実行するだけです。( XXX はファイル名)

Swing のプログラムイメージ import java.awt.*; import java.awt.event.*; import javax.swing.*; class XXX extends JPanel{ パネルでのグラフィック処理 パネル上でのイベント処理 } class XXX extends JFrame{ フレームへのパネルの配置 フレーム上でのイベント処理 } class XXX{ public static void main(String[] args){ JFrame w = new B05aFrame(); w.show(); } フレームの設定・処理 パネルの設定・処理

Pacman.java の実行結果 Swing を用いてグラフィックを表示する

Pacman.java 1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 public class Pacman extends JPanel{ 6 public Color c = Color.green; 7 public void paintComponent(Graphics g){ 7' super.paintComponent(g); 8 g.setColor(c); 9 g.fillArc(100, 100, 100, 100, 30, 300); 10 } 11 public static void main(String argv[]){ 12 JFrame f = new JFrame(); 13 f.getContentPane().add(new Pacman()); 14 f.addWindowListener(new WindowAdapter(){ 15 public void windowClosing(WindowEvent e){ 16 System.exit(0); 17 } 18 }); 19 f.setSize(300,300); 20 f.show(); 21 } 22 } Pacman クラスに Jpane を継承 グラフィックの描画 を行うメソッド ウィンドウが閉じられ たときのイベント JFrame に ContentPane を取得させその上に Jpanel を載せている。 Jframe の表示

Pacman2.java の実行結果 Swing を用いてグラフィックを表示する Swing を用いてボタンの生成する

11 public static void main(String argv[]){ 12 JFrame f = new JFrame(); 13 Container c = f.getContentPane(); 14 Pacman2 p = new Pacman2(); 15 c.add(p); 16 JButton b = new JButton("Red"); 17 c.add(b, BorderLayout.NORTH); f.addWindowListener(new WindowAdapter(){ 20 public void windowClosing(WindowEvent e){ 21 System.exit(0); 22 } 23 }); 24 f.setSize(300,300); 25 f.show(); 26 } Pacman2.java Red という名前でボタンbを生成 ぺインの上側にボタンをのせる。

Pacman 3.java の実行結果 Swing を用いてグラフィックを表示する Swing を用いてボタンの生成する ボタンの動作設定をする

Pacman 3.java 12 public void actionPerformed(ActionEvent e){ 13 col = Color.red; 14 repaint(); 15 } public static void main(String argv[]){ 18 JFrame f = new JFrame(); 19 Container c = f.getContentPane(); 20 Pacman3 p = new Pacman3(); 21 c.add(p); 22 JButton b = new JButton("Red"); 23 c.add(b, BorderLayout.NORTH); 24 b.addActionListener(p); f.addWindowListener(new WindowAdapter(){ 27 public void windowClosing(WindowEvent e){ 28 System.exit(0); 29 } 30 }); 31 f.setSize(300,300); 32 f.show(); 33 } Red というラベルでボタンBを生成 actionLister を呼び出し 13: col に red を指定 14:際描写している

演習 Change をクリックすると色が変わる Pacman3.java を参考に,ボタンを押す度に赤と緑を 交互に変える PacmanRG.java を作成してください。

ヒン ト ・ actionPerformed の中の動作を考えてください。 ・ If 文を使います ・ col = Color.red; で色を赤にします。

7 int i=0; ・ 14public void actionPerformed(ActionEvent e){ 15if(i%2 == 0){ 16col = Color.red; 17} else{ 18col = Color.green; 19} 20repaint(); 21i++; 22 } ・ 19 JButton b = new JButton("Change"); i÷ 2をすることで、偶数に なった場合に red にしている。 奇数であれば green になる。 再描写したあとで i を+している actionPerformed の中で定義しないので注意 Pacman RG.java の回答

Icon1.java の実行結果 Swing を用いてアイコンを生成する

Icon1.java 1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 public class Icon1 extends JPanel{ 6 Icon1(){ 7 Icon img = new ImageIcon("C-01.gif"); 8 JLabel lab = new JLabel(img); 9 add(lab); 10 } 11 public static void main(String argv[]){ 12 JFrame f = new JFrame(); 13 f.getContentPane().add(new Icon1()); 14 f.addWindowListener(new WindowAdapter(){ 15 public void windowClosing(WindowEvent e){ 16 System.exit(0); 17 } 18 }); 19 f.setSize(300, 300); 20 f.show(); 21 } 22 } 7:指定した画像を img という アイコンとして生成 8: img を乗せた lab という ラベルを生成 9: Jpanel に lab を乗せている Icon2 を呼び出している

Icon 2.java の実行結果 Swing を用いて複数のアイコンを生成する

5 public class Icon2 extends JPanel{ 6 Icon2(){ 7 JLabel lab1 = new JLabel(new ImageIcon("C-01.gif")); 8 JLabel lab2 = new JLabel(new ImageIcon("C-02.gif")); 9 add(lab1); 10 add(lab2); 11 } 12 public static void main(String argv[]){ 13 JFrame f = new JFrame(); 14 f.getContentPane().add(new Icon2()); 15 f.addWindowListener(new WindowAdapter(){ 16 public void windowClosing(WindowEvent e){ 17 System.exit(0); 18 } 19 }); 20 f.setSize(300, 300); 21 f.show(); 22 } 23 } Icon 2.java Icon2 を呼び出している

Icon3.java の実行結果 Swing を用いてアイコンを表示する Swing を用いてボタンの生成する 絵が変わるボタンの動作設定をする

1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 public class Icon3 extends JPanel implements ActionListener{ 6 Icon i1 = new ImageIcon("C-01.gif"); 7 Icon i2 = new ImageIcon("C-02.gif"); 8 JLabel lab; 9 Icon3(){ 10 lab = new JLabel("Tile"); 11 lab.setIcon(i1); 12 add(lab); 13 JButton b = new JButton("Change"); 14 add(b); 15 b.addActionListener(this); 16 } 17 public void actionPerformed(ActionEvent e){ 18 lab.setIcon(i2); 19 } Icon 3.java 11 : i1 のアイコンを set している Change というラベルでボタン b を生成 Icon の i2 を呼び出している

Text1.java の実行結果 Swing を用いたテキストフィールドの作成をする

Text1.java 1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 class Text1 extends JPanel implements ActionListener{ 6 JTextField t; 7 JLabel lab; 8 Text1(){ 9 t = new JTextField("Write Here", 20); 10 t.addActionListener(this); 11 add(t); 12 lab = new JLabel("Tile"); 13 add(lab); 14 } 15 public void actionPerformed(ActionEvent e){ 16 lab.setText(t.getText().toUpperCase()); 17} ・ テキストフィールド t を定義 Write Here と書かれ た 20 文字分のテキス トフィールド t を生成 t.getText() でテキスト フィールド t の中身を 取得し大文字にし lab.setText でラベルに 貼り付けている

Text2.java の実行結果 Swing を用いたテキストフィールドの作成をする x が入力されたらその二倍を出力する

Text 2.java 1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 class Text2 extends JPanel implements ActionListener{ 6 JTextField t; 7 JLabel lab; 8 Text2(){ 9 t = new JTextField("Input x", 20); 10 t.addActionListener(this); 11 add(t); 12 lab = new JLabel("* 2 = "); 13 add(lab); 14 } 15 public void actionPerformed(ActionEvent e){ 16 int x = Integer.parseInt(t.getText()); 17 lab.setText("* 2 = " + (x*2)); 18 } ・ ラベルを生成し貼り付け 15:Int 型に t の内容を変換 16:*2= という文字列と x の 計算結果をしてる。

演習 シグモイド関数 f(x) = 1/(1 + e-x) を計算する Text3.java を作成してください。

ヒン ト ・ e は Math.exp を用いる ・計算結果は少数の値が表示されるので double を用いる ・計算式は double f = 1/(1 + Math.exp(-x)); となる ・ TextField を1つと Label を2つ作る