タイトルの通り、グラフィックを使用するプログラムをエクスプローラ等を用いずに表示させるには、
どうやらSwingというものを使用するらしいということまで調べることができました。
グラフィックの表示に関しては、Swingを使用した方がいろいろとできるようで。

組み込む方法なんかは今後調べてみますが、
今覚えようとしているawtとは若干違いがあるようで、
まずawtの基礎の部分を覚えるべきか、
Swingにも同時に手を出すか判断に迷います。


それとは別に、
javaで使用できる画像の形式について調べると
JPEG、GIF、PNG、BMPくらいしか出てこないんだけど、
それ以外は使用不可なんだろうか。
できれば、TIFFとか使いたいんだけどな。
日付変わってしまいましたが、
何とか1日で画像・テキストの表示に関するプログラムは作ることができました。

テキストを打ち間違えてたり、インポートの宣言が不十分だったり、いろいろと問題ありましたが、
なんとか・・・。
まあ、いい経験です。

下が作ってみたプログラム。
なんというか素人目に見ても強引な感があります。

---------------------------------------
import java.applet.*;
import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

public class Bgtext extends Applet implements MouseListener
{
int i;
Image bg1;
Image bg2;

public void init()
{
i = 0;
bg1 = getImage(getCodeBase(), "BG1.gif");
bg2 = getImage(getCodeBase(), "BG2.gif");

addMouseListener(this);
}

public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}

public void mouseClicked(MouseEvent e)
{
i++;
repaint();
}

public void paint(Graphics g){
if ( i == 0 )
{
g.drawImage(bg1, 0, 0, this);
}

else if ( i == 1 )
{
g.drawImage(bg1, 0, 0, this);
g.drawString("テキストその1", 380, 250);
}

else if ( i == 2 )
{
g.drawImage(bg2, 0, 0, this);
}
else if ( i >= 3 )
{
g.drawImage(bg2, 0, 0, this);
g.drawString("テキストその2", 380, 250);
}
}
}

---------------------------------------------
なんというか、画像の上にテキストを表示させる際に毎回画像ごと再描画するのって、
効率悪そうに見えるんだけれど、どうなんだろう?

もっと大きなプログラム組むとしたら画像とテキストの処理は毎回指定するのではなく、
それぞれ別個に処理する方法も組み込まないといけなさそう。

次回はその辺も少し考慮に入れながら組んでみようかしら。
本やネットで調べて、
コマンドプロンプト以外でグラフィックや文字を表示させるには、
アップレットというものを使う様だということがわかってきました。

アップレットを利用してHTMLファイルの中にjavaを組み込むことで、
インターネットエクスプローラ等で画像や文字を表示させることができる模様。

動作的には、作成したプログラムをインターネットエクスプローラに読み込んで表示するようで、
アプリケーションごと作成したかった自分としてはイメージと若干ずれますが、
とりあえずこの方法を利用してプログラムの練習をしてみようと思います。

jarファイルは他のアプリケーションを介さずプログラムを起動できる的な事や、
jarファイルをexeファイルに変換するツールもあるという事も知りましたが、
jarファイル=作成したクラスファイルや使用する素材をまとめて1つにしたファイル、
とすると、結局プログラムを作っている最中の確認はどうすればいいのかがわからなかったので、
まずはエクスプローラで表示させる方法でいってみることにしました。
(アップレットビューアーを使用する形式でプログラムを組んで、
 jarファイル作成→exeファイル化
 という手順なのかな?)

練習として、
起動

画像を表示させる

マウスクリック

文字を表示させる

マウスクリック

画像の切り替え

というものを作ります。
初心者の自分としては複雑すぎるような気もしますが、がんばってみようと思います。
参考書として読んでいた、
『基礎からのJAVA/宮本信二(ソフトバンククリエイティブ)』
をほぼ読み終わり。

終盤一部細かいところを読み飛ばしたのと、
のっている演習問題等はやっていないので“ほぼ”というところで。
一応、何が書いてあるかは目を通したので、必要になったらまた見直す感じで。
実践せずに読んだだけなので、どの道読み返すことは確実。
とりあえず何か形になるものを作ってみたいという気持ちが強いです。

一通り読んだものの、コマンドプロンプト以外で表示する方法やグラフィック等の表示方法はわからず。
というか、本の冒頭を読み直してみると「この本ではグラフィカルな操作はおしえねえよ」(要訳)とかかかれていた。
しょうがないので、もう一冊買っておいたテキスト、
『第3版ゲーム作りで学ぶJAVAプログラミング/中島省吾(SCC)』
を必要な部分だけ拾い読みしつつ、
テストとして作成するノベル形式ゲームの簡単な仕様書を作成中。

今欲しいのは標準ライブラリに搭載されているパッケージやクラスについて、
用例付きで解説してある本がないかなと。
APIリファレンスはなんか見づらくて・・・。
JDKを本日インストールし、参考テキストをいくつか打ち込んで試してみました。
まだ気がかなり早いと思うのですが、まず何を作るかを考えて見ようともいます。


昨日書いた通り、現状ではまだ

・計算
・テキストや数値の表示
・条件に合うか合わないかの結果を表示

といった機能をコマンドプロンプト上でだけ表示させる方法しかわかっていません。
もちろん、それに付随して、
そういった計算やテキスト表示の順序を変えたり、
条件によって表示させる内容を変えたりといったことは、
参考テキストを読んでいる状態ではありますが・・・。

ゲームというとやっぱりコマンドプロンプト以外で、
グラフィックやテキストが表示でき、
プレイヤーの操作でそれが動いたりというものを想像するのが一般的かなと思います。

そこまで達することを考えると、まだスタートラインにも立っていないような気も。
ゲームを作るなんてまだまだ先の事とも思うのですが、
何か目標はあったほうがいいでしょう。


フローについての解説を読んでいた時まず思いついたのが、
ノベル形式のゲームです。
テキストを読み進めて行き、途中に表れる選択肢でどれを選ぶかによって次の展開が変わるというやつ。

安直ですが思いついてしまったので、
とりあえずまずはそれを作る事を目標にして行こうかと思います。
さし当たって今後まず知らなければいけないのは、

・コマンドプロンプト以外でプログラムの結果を表示させる方法
・テキスト・画像を表示させる方法
・プレイヤーの操作を受け付ける方法

てな所かな。
おそらくそれに伴って細々とした作法等を覚えていかなければならないでしょう。
ほんと、先は長いね。