[serika.jar]入門

- 今回、[serika.jar]というソフトを作りました。
Java17で作られているjarソフトです。
[ダウンロード](https://aru.kan-be.com/)

- このソフトは、簡単に使える見える化を伴うようなソフトが欲しいなーっと思って作ったのが始まりでしたような？気もしますが今となっては定かではありません。

- 一応トップ画面はこんな感じ。
![capture021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/48c48c3f-048a-23a2-b6cf-f588493fdbd6.png)
- [設定]ってボタンがある
![gcapture001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/7932859f-425e-504d-c89f-986b8dfe7a41.png)
これは、このソフト全体の設定関係のメニューが開きます。
- [設定]、これを押下する。
![capture002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/a182168e-6e5d-1dad-4f51-b457d8a21d88.png)
主に最初使うのは画面表示だけ。
![capture006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/f6863061-aa8b-16f1-2bab-61d86bdd76af.png)
押してみる。
![capture014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/f35a0e9b-e488-5a98-62d1-1d470a8ee7b4.png)
こんな画面になる。
上から配色1、２、３というのは設定のお気に入りなので、最初は入っていない。
だから、最初はオリジナルとエフェクトぐらいしか使わない。
![capture023.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/5b6ef392-cb4b-f320-c0d8-0ba894e92f27.png)
エフェクトで画面のブレとかをまずは自分のパソコン用に修正して見え方をましな感じにする。
![capture024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/8d828585-5781-d7fb-6f04-bd1abcfe30fb.png)
次に前にどって、オリジナルを押して画面の配色を自分好みに設定する。
![capture025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/5af052c7-326d-93ae-e0cd-09d89582bd42.png)
設定を色々と自分なりに変えて画面配色を変えていく。
- と大体これぐらいで設定は完了。
![capture026.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/dffd276b-46b7-7ec5-7d96-873c01e5e265.png)
戻る押下し続けてトップに戻ると、今度は下のバーがあると思う。
これを、スライドすると画面の透明さが変わってくる。

- ちょっと先走って話します。
このソフトは、オリジナル言語を包含していて、これによって機能を色々作ることができるソフトです。
例えば、メモ帳が前作ったのがあるのでソースを見てみます。
```
<frame type="original" title="リスト" size="1">
  <object type="JButton" text="ノート" size="w*3/5,h*9/10,w*2/5,h*1/10" tool="ノートを開きます">
<trg no="0">
@string l = @object5(6);
@string d = @thisPath();
@letString ds = d + "/" + "now.set";
@writers(ds,l,1);
@start(list.srk);
@finish();
</trg>
  </object>
  <object type="JButton" text="終了" size="w*0/5,h*9/10,w*2/5,h*1/10" tool="0">
<trg no="0">
@finish();
</trg>
  </object>
  <object type="JButton" text="追加" size="w*3/5,h*8/10,w*2/5,h*1/10" tool="アイテムをリストに追加します">
<trg no="0">
@string l = @object4(6);
@string d = @thisPath();
@letString ds = d + "/" + "list.set";
@string r = @readers(ds,1);
if.i1al=="0"){
@string td = @todayJa();
@letString da = td + "<ax1>" + r;
@writers(ds,da,4);
@object4(1) = "";
@finish();
@start(top.srk);
}end_if.i1a;;;

if.i2b(l!="0"){
@letString da = l + "<ax1>" + r;
@writers(ds,da,4);
@object4(1) = "";
@finish();
@start(top.srk);
}end_if.i2b;
</trg>
  </object>
  <object type="JTextField" text="0" size="w*0/5,h*8/10,w*3/5,h*1/10" tool="0">
  </object>
  <object type="JList" text="list.set" size="w*0/5,h*0/10,w*5/5,h*8/10" tool="リストを選択">
<trg no="0">
</trg>
  </object>
  <object type="JButton" text="変" size="w*2/5,h*9/10,w*1/5,h*1/10" tool="アイテムを変更します">
<trg no="0">
@string o = @object5(2);
@string r = @thisPath();
@string s = "/";
@string f = "hen2_now.set";
@letString d = r+s+f;
@writers(d,o,4);
@finish();
@start(hen.srk);
</trg>
  </object>
  <set>
  </set>
</frame>
```
トップの画面はこんな感じです。
こういう感じで、メモ帳のファイルを開くような感じの機能を作ってみています。
```
<frame type="original" title="メモ" size="1">
  <object type="JButton" text="保存" size="w*2/5,h*9/10,w*3/5,h*1/10" tool="0">
<trg no="0">
@string dt = @object3(6);
@string dtt = @object4(6);
@string d = @thisPath();
@letString t1 = d + "/" + "now.set";
@string t3 = @readers(t1,6);
@letString r = d + "/" + t3 + "_memo.txt";
@letString t = d + "/"  + t3 + "_title.txt";
@writers(r,dt,1);
@doReplaceWriters(r,r,"","",1);
@writers(t,dtt,1);
@doReplaceWriters(t,t,"","",1);
</trg>
  </object>
  <object type="JButton" text="戻る" size="w*0/5,h*9/10,w*2/5,h*1/10" tool="0">
<trg no="0">
@start(top.srk);
@finish();
</trg>
  </object>
  <object type="JTextArea" text="0" size="w*0/5,h*1/10,w*5/5,h*8/10" tool="0">
  </object>
  <object type="JTextField" text="0" size="w*2/5,h*0/10,w*3/5,h*1/10" tool="0">
  </object>
  <object type="JLabel" text="タイトル" size="w*0/5,h*0/10,w*2/5,h*1/10" tool="0">
  </object>
  <set>
@string d = @thisPath();
@letString t1 = d + "/" + "now.set";
@string t3 = @readers(t1,6);
@letString r = d + "/" + t3 + "_memo.txt";
@letString t = d + "/"  + t3 + "_title.txt";
@string dt = @readers(r,6);
@object3(3) = dt;
@string drt = @readers(t,6);
@object4(3) = drt;
  </set>
</frame>
```
上記は実際のメモ帳の画面です。
画面は下記のようになります。
![capture001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/0a1c5026-5979-f362-3882-e6f1b614fa00.png)
こういう感じで機能を簡単に作ることができます。
- ただ、このソースだけでは、大規模なものやもっともソケット通信やマクロ機能を作りたいという方もいると思ったので、外部jarをユーザーが独自に作ればそれをソース側からよびだすことができるようにもしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109708/cf280cb2-352e-b98a-85b1-875a6af41812.png)
- 作られるフォルダの一部にjarフォルダというものがあります。
その中にしまっておけば、ソースから呼び出せます。

ちょっと休憩します。