情報科学B
第14回 課題作成③
1 情報科学B 第14回 課題作成③ 情報科学B Info2/3・・・ Report14_1.java info14 ←今日のフォルダー作成プログラムの1行目に以下を入れること
// vm12345 杉崎 えり子
課題
3
(提出)
2 情報科学B 第14回 課題作成③ボタンとアニメーション(第13回)を組み合わせて、オリ
ジナルのウィンドウを作成する。
第15回授業終了時間までにアップロードを
完了させておくこと
教科書、資料、過去 のプログラムを見な がらでOKReport14.java
MyPanel14.java
課題
3
(提出)
3 情報科学B 第14回 課題作成③例:
①乱数を使用して占いのプログラム。ボタンをクリッ
クするとアニメーションの後に結果を表示
教科書、資料、過去 のプログラムを見な がらでOK Report14.java MyPanel14.java課題
3
(提出)
4 情報科学B 第14回 課題作成③例:
② ボタン1をクリックするとアニメーション1が、ボタ
ン2をクリックするとアニメーション2が表示される
プログラム
教科書、資料、過去 のプログラムを見な がらでOK Report14.java MyPanel14_1.java MyPanel14_2.javapublic class Button extends JFrame implements ActionListener {
コンストラクタ
public Button(){
addActionListener(this);
}
メイン
public static void main(String[] args){
}
イベント
public void actionPerformed(ActionEvent e) {
}
}
フレーム作成 メイン ボタンクリック時の処理⑥ボタンとアニメ
ヒント
mypnl = new MyPanel();
MyPanelクラスでmypnlオ ブジェクトを作成するため
mygを使って描画 が可能になる
Button myframe = new Button(); anime パネル 部品 フレーム
mainを含むファイル
① ② ③MyPanel mypnl;
class MyPanel extends JPanel implements Runnable {
コンストラクタ
public MyPanel() {
}
ペイント
public void paintComponent(Graphics myg) {
}
}
図形描画
書き換え
public void run() {
}
mainを含まない残りの部分
Runnableインタ フェースを実装
runメソッドの本体を定義 Thread refresh = new Thread(this);
refresh.start(); Threadクラスのオブジェ クトを生成 スレッドのrunメ ソッドを呼び出す repaint(); try { Thread.sleep(10); } Catch(Exception e) { } おまじない① おまじない② paintComponent()メソッド を呼び出す ④ ⑤ ⑥ ⑦ ⑧ ⑨
ヒント
⑥ボタンとアニメ
7
グラフィック
情報科学B 第11回 グラフィック
クラスいろいろ
JFrame: フレームウィンドウを作成。
JButton: ボタンを作成。
JLabel: 文字列を表示。
JPanel: パネルを作成。パネルにコンポーネント
(ボタン、ラベルなど)を貼り付けられる。
ImageIcon: 画像ファイルをアイコンとして描画する。
public class Window extends JFrame{
コンストラクタ
public Window() {
}
メイン
public static void main(String[] args){
}
}
フレーム作成 メイン復習
①ウィンドウの作成
Window myframe = new Window();
JFrameクラスを継承 してWindowクラス を作成(更に機能を 追加するため) myframeオブジェクトを作成したらコン ストラクタ(Window)を実施する JFrameクラスを拡張して Windowクラスを作成
public class Button extends JFrame implements ActionListener {
コンストラクタ
public Button(){
addActionListener(this);
}
メイン
public static void main(String[] args){
}
イベント
public void actionPerformed(ActionEvent e) {
}
}
フレーム作成 メイン ボタンクリック時の処理復習
② ボタンの作成
Button myframe = new Button(); ボタンクリック処理 を行うために、リス ナーインタフェース を実装 myframeオブジェクトを作成したらコン ストラクタ(Button)を実施する クリックされたときの処理
public class Button extends JFrame implements ActionListener {
コンストラクタ
public Button(){
JPanel mypnl;
addActionListener(this);
}
メイン
public static void main(String[] args){
}
イベント
public void actionPerformed(ActionEvent e) {
}
}
フレーム作成 メイン ボタンクリック時の処理 図形の描画③ ボタンクリックでグラフィックス表示
復習
Graphics myg=mypnl.getGraphics();
JPanelクラスでmypnlオブ ジェクトを作成 mygを使って描画 が可能になるButton myframe = new Button(); draw
パネル
部品
public class Gra extends JFrame{ MyPanel mypnl コンストラクタ public Gra() { mypnl=new MyPanel(); setVisible(true); } ペイント
public void MyPanel extends JPanel {
public void paintComponent(Graphics myg){ super.paintComponent(myg); } } } フレーム作成 図形描画 メイン
public static void main(String[] args){ } メイン
④ グラフィックス表示
復習
JPanelクラスに手を加えて MyPanelクラスを作成。 コンストラクタが書いてないの でJPanelのコンストラクタを実施 自作MyPanelクラスで mypnlオブジェクトを作成Gra myframe = new Gra();
パネル 図形 フレーム paintComponent()を呼び出し JPanel(親)のpaintComponent を実施後、以下の自作部分を 実施 ① ② ③ ④ ⑤
public class Anime extends JFrame{
コンストラクタ
public Anime() {
}
メイン
public static void main(String[] args){
}
}
パネル作成
メイン
⑤ アニメーションの作成
mypnl = new MyPanel();
mainを含むファイル
JFrameクラスを拡張して Animeクラスを作成
Anime myframe = new Anime(); myframeオブジェクトを作成したらコン ストラクタ(Anime)を実施する
ファイルを分割
① ②復習
class MyPanel extends JPanel implements Runnable {
コンストラクタ
public MyPanel() {
}
ペイント
public void paintComponent(Graphics myg) {
}
}
図形描画
書き換え
public void run() {
}
⑤ アニメーションの作成
mainを含まない残りの部分
Runnableインタ フェースを実装
runメソッドの本体を定義 Thread refresh = new Thread(this);
refresh.start(); Threadクラスのオブジェ クトを生成 スレッドのrunメ ソッドを呼び出す repaint(); try { Thread.sleep(10); } Catch(Exception e) { } おまじない① おまじない② paintComponent()メソッド を呼び出す ③ ④ ⑤ ⑥ ⑦ ⑧