Skip to content

fkmt36/omikuji_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

J3課題 第2回 練習問題4

Math.random()を使ったおみくじアプリです。

実行方法

javac OmikujiApp.java
java OmikujiApp

工夫したこと

工夫したことは2つある。

1つ目は、画面のを構成する部品一つ一つをクラスに分けたことだ。部品をcomponentsというディレクトリに入れ、そのcomponentを使うクラスをscreensというディレクトリに入れた。OmikujiBtnComponent.javaを例にすると、これは「おみくじを引く」ボタンのコンポーネントで、JButtonを継承し、ActionListenerを実装することで、ボタンのデザインや押した時の反応は全てこのクラスで定義している。そして、MainScreen.java内でJPanelにaddしている。これによるメリットは、MainScreen.javaのコードが見やすくなったことだ。MainScreen内ではaddしかしておらず、コンポーネント固有の設定はコンポーネントに任せている。

2つ目は、おみくじの結果をCSVファイルに記録するようにしたことだ。おみくじを引くとdata.csvというファイルが生成され、結果が記録されるようにし、履歴というボタンを押すと、そのCSVファイルを読み込んでおみくじの結果を閲覧できるようにした。仕組みは、「おみくじを引く」ボタンを押すとOmikujiクラスのlot()が実行され、その結果OmikujiResultオブジェクトが返される。このオブジェクトは、大吉か中吉かの情報(OmikujiTypeというenumを定義)とくじを引いた時刻(java.util.Dateを使用)を変数として持つ。そのオブジェクトをResultServiceクラスのwirte()に渡すとCSVに追記する。また、履歴ページに遷移したときはResultServiceクラスのreadAll()が実行されOmikujiResultの配列が返され、テーブルに反映される。CSVファイルに記録することで、アプリケーションを落としても履歴が消えないのでゲームっぽくなったのではないだろうか。

メモ

*.classファイルだけ消す方法

find . -name "*.class" | xargs rm

zip化

zip -r ex4.zip .

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages