#author("2020-06-19T13:03:27+09:00","default:takataka","takataka") #author("2020-06-19T21:06:56+09:00","default:takataka","takataka") *グラフィックス基礎及び実習 2020年度 第11回 [#e9701092] #contents //&color(#ff0000){''工事中''}; **ex11 課題A [#kadaiA] //&color(Red){''工事中''}; ''提出期限: 0619金17:00'' 次のことをやりなさい. + 授業中の指示にしたがって G11Pochi クラスを作る + それを修正して,以下の画像のような見た目が得られるようにする.ただし,「ぽちっとな」と「ねこボタン」それぞれを表す変数は元と変えないこと.授業中の指示どおりに作っていれば,「ぽちっとな」は b2 で「ねこボタン」は b1 のはずである. + ''ラベルを表すインスタンスのインスタンスメソッドを用いて'',「「ねこボタン」ってなんやねん」の文字列を,自分の学籍番号と名前をつなげた文字列に変更すること.コンストラクタの引数を書き換えるのではない. + 完成したプログラムのソースファイルをこの科目の Moodle コース上の当該の場所へ提出すること. -- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意すること.''ファイル名の間違い(大文字小文字も)に注意''. &ref(https://www-tlab.math.ryukoku.ac.jp/~takataka/course/Graphics/G11Pochi-2020ex11A.png,nolink); **ex11 課題B [#kadaiB] //&color(Red){''工事中''}; ''提出期限: 0619金18:20'' 次のことをやりなさい. + 授業中の指示にしたがって HelloEvent クラスをつくる + 「ごあいさつ」ボタンを押した際にラベルに表示される文字列を, t987654 のほげほげおでおま のように自分の学籍番号と名前をふくむ適当な文字列に変更すること. + 上記のようにするとボタンを押した際に出力される文字列が一部見えないかもしれないので, label.setPrefWidth(200); という行を,label インスタンスの生成以降,pstage.sizeToScene(); の行以前のどこかへ挿入すること.もっと幅を広げたければ 200 をより大きくすればよい.ここで登場している prefWidth プロパティについては,Region クラスで用意されている(教科書 p.177). + 完成したプログラムのソースファイルをこの科目の Moodle コース上の当該の場所へ提出すること. -- 上記ファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意すること.''ファイル名の間違い(大文字小文字も)に注意''. **ex11 課題C [#kadaiC] //&color(Red){''工事中''}; ''提出期限: 0625木23:59'' &ref(https://www-tlab.math.ryukoku.ac.jp/~takataka/course/Graphics/G10RadioCombo.png,nolink); &ref(https://www-tlab.math.ryukoku.ac.jp/~takataka/course/Graphics/G10RadioCombo-graph.png,365x266,nolink); 左上図のような表示をするプログラムを作成しなさい. 次のことに注意. - クラス名は G10RadioCombo とすること. - 左側には RadioButton のコンポーネントが2つ縦にならんでいる.2つの画像はそれぞれのコンポーネントにつけられたものである.右側のコンポーネントは,ComboBox クラスのものである. - このようなコンポーネント配置を実現するには,次のようにしたらよい.これらの説明から分かるように,&color(blue){レイアウトコンテナを入れ子にしたシーングラフを作ることで,複雑なコンポーネント配置を柔軟に実現することができる.}; (右上図参照) ++ 2つのRadioButton オブジェクトを生成(変数名 rb1, rb2 とする) ++ それらを VBox のコンテナ(変数名 vbox とする)に入れる #pre{{ VBox vbox = new VBox(rb1, rb2); }} ++ vbox と ComboBox オブジェクト(変数名 cb とする)を BorderPane のコンテナ(変数名 root とする)に入れる #pre{{ BorderPane root = new BorderPane(); root.setLeft(vbox); root.setCenter(cb); }} left, center プロパティのかわりに center, right プロパティを使ってもよい. ++ root をシーングラフのルートノードとして Scene オブジェクトを生成 #pre{{ Scene scene = new Scene(root); }} - RadioButton はデフォルトで上の方のものが選択された状態にすること. - ''2つの RadioButton を同じ ToggleGroup に入れるのを忘れずに'' - ''2つの RadioButton を同じ ToggleGroup に入れるのを忘れずに.''(教科書pp.196,197) - ComboBox のメニュー項目は自分で適当なものを考えればよい.''ただし,メニュー項目のどれか一つを自分の氏名をふくむ文字列,他のどれか一つを自分の学籍番号をふくむ文字列にすること.'' **ex11 課題S(omake) [#kadaiS] //&color(#ff0000){''工事中''}; 期限: 0626金23:59.これはおまけ課題です.やらなくても減点になりません.やったら加点かも p.201 の Chart の節にあるように,JavaFX の Chart クラスのサブクラスに,PieChart という円グラフを描くためのクラスがある.このクラスの使い方について調べ, https://sentan.rikou.ryukoku.ac.jp/about/career/ にある数理の2018年度卒業生の就職状況データの円グラフを描こう. #pre{{ ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList( new PieChart.Data("教育", 31.3), new PieChart.Data("情報通信業", 27.7), : }} - クラス名は G10PieChart とすること. - 円グラフのパイ(スライス)は12時から時計回りにすること. - 円グラフのタイトルを「数理情報学科就職状況(2018年度卒業生)」とすること. - &color(red){このデータの「教育」には,各種学校の常勤・非常勤講師,塾講師,教育産業,等も含まれている.中学校や高等学校の教諭として就職した者は決して多くないことに注意.};