簡単な文章のやり取りだけでできそうなTRPGを支援するツールを作ってみる。

前提条件として、
------------------------------------------------------------

・使用言語はJava

・Javaの実行ファイル形式であるJar形式での使用

・音声チャットはSkypeとかに丸投げする

・GUIまでを含めて作ってみる

------------------------------------------------------------

作成するJavaファイルはGUIとメインと構造体とメソッドの4つで。

必要があれば追加していきます。

私が使用しているJavaのエディタはjcpadです(エディタのことは宗教戦争になりますので……)

1日目1

さて、早速はじめていきます。

特に設計書も何も作らずにダカダカコードを書いていきます。

最初はGUIから。

下の雛形を使用します(昔に書いた雛形ですが案外使いやすいです)

------------------------------------------------------------
import java.net.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

public class Gui extends JFrame implements ActionListener {
public Gui() {
setTitle("TRPG支援ツール");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600,400);
setLocation(300, 100);
getContentPane().add(Get_Panel());
this.setVisible(true);
//setResizable(false);
}

private JPanel Get_Panel() {
JPanel top_panel = new JPanel();
return top_panel;
}

public void actionPerformed(ActionEvent e) {
int command = Integer.parseInt(e.getActionCommand());
}
}
------------------------------------------------------------

一応上から順番に解説

importでライブラリを読み込んでいるところ。

① ネットワークを利用するためのライブラリ
  ソケットとか使うためのもの

② GUIを作るために必要なベースライブラリ
  これが無ければ始まらない

③ GUIで縁とかに使われている線を扱うライブラリ
  デザインに凝りたいなら使ってみるのも良い

④ ②のものよりも軽量なGUIベースライブラリ
  とりあえず入れている感。動作のためには必要らしい

⑤ ボタン等の押下で発生するイベントを扱うためのライブラリ
  動作を入れるためのおまじない

⑥ 入出力を扱うためのライブラリ
  ストリームとか開いて使う通信等にも使うよ

クラス宣言部分
extendsでJFlameを継承しています。
メイン関数は別ファイルにして、オーバーライドしたクラスを呼び出して使用します。

なので、mainは Gui app = new Gui();ぐらいしか書かない。

implementsではActionListenerを呼んでます。これで動作を設定できるね。

1つ目のメソッド部分
JFlameの設定をするよ
①ウィンドウに表示される名前を決定する。今回は「TRPG支援ツール」
②右上の×ボタンを押したらウィンドウだけじゃなくてプログラムも終わるようにする
③ウィンドウのサイズは横600の縦400で作りますよ。大きいか小さいかは知らない。まずはこのくらい
④ウィンドウを起動したときに表示される場所は左上から右に300、下に100のところにするよ
⑤表示する内容はGetPanelっていう次のメソッドから持ってくるよ
⑥可視化するよ(これをしないと透明なウィンドウが動いているだけになるから)
⑦ウィンドウのサイズを変えられないようにするよ(デバッグのためコメントアウトしているけど)

2つ目のメソッド部分
①リターンするためのJPanelを宣言するよ。いうなればお盆だね
②何も載せてないけどお盆をそのまま渡しちゃうよ。雛形だからね

3つ目のメソッド部分
実際に行われる動作を設定するメソッド
動作が発生した場合はActionEvent型の変数eに格納されるよ
このままだといくつかボタンがある状態でクリックすると、
どのボタンが押されたか分からないから設定していくよ

①e.getActionCommand()でeの中に格納された動作のトリガーコマンドをもらってくるよ
 それをif文で比較しやすいように数字としてcommandに入れるよ

ここで言うところのトリガーコマンドっていうのは、
ボタンを宣言した後にボタンごとに個別に設定しておく識別用の番号だよ
(詳しくは実際使うときに説明するよ)


なんか説明だけで結構な量になったから今回はここまでで

次回から実際にいろいろ書いていってみるよ