
Since 2003.04.15
今回は、白地に赤丸という今の日の丸とは違う日の丸の話です。
戦国時代、上杉謙信は「毘」の旗と共に紺地日の丸を使ったそうです。対して、好敵手武田信玄は今の日の丸と同じ白地日の丸でした。
インターネットで検索すると、「黒地に赤丸」という記事もあったのですが、どうも紺地に日の丸が正しいようです。
| 参照 |
米沢観光協会馬標は紺地に日の丸 播磨屋.com 、 気まぐれ浪人 居酒屋りょうさんのページでは、紺地日の丸の図柄の日本酒「東光正宗・純米吟醸・日本響」が紹介されていました。 |
|---|
これを描くアプレットを作るとすると、別のプログラムにするという方法もあります。
たとえば、完成版を「basic」フォルダに別名[Kensinflag.java]でコピーして、次の様に書き換えるという方法です。
上部略
public class Kensinflag extends Applet {
中略
public void init() {
setBackground(new Color(0, 0, 128));
}
}
ここでは、応用範囲の広い方法として、「パラメータ渡し」を使ってみます。
パラメータ渡しというのは、HTMLファイルの中で、<applet> と </applet> の間に、
<param name="abc" value="xxx">
というタグをはさみ、アプレットがこれを受け取って動作を変えるという方法です。
早速、分析に入ります
今の日の丸と謙信の日の丸は地の色が違います。
これをパラメータとして渡すのですが、前回までで作成したアプレットでは、標準的な Colorクラスのコンストラクタ(インスタンスを生成する命令)
Color(int r, int g, int b) 範囲 (0 〜 255) の指定された赤、緑、青の値を使って、不透明な sRGB カラーを生成します。
を使いましたが、これだと、赤、緑、青の値をそれぞれ指定しなければなりませんので、3つのパラメータが必要です。
別のコンストラクタに
Color(int rgb) ビット 16-23 の赤色成分、ビット 8-15 の緑色成分、およびビット 0-7 の青色成分から合成された、指定された RGB 値を使って、不透明な sRGB カラーを生成します。
があります。これだと桁数24ビットの値1つ渡せばOKです。
24ビットの値は、16進数6桁で表記した数値をjava.lang.Integerクラスの
parseInt(String s, int radix)
2 番目の引数に指定された基数を元にして、文字列の引数を符号付き整数として構文解析します。
に渡せば取り出せます。
さっそく、プログラム作業に入ります。
/net/sys5jp/basic/Sunflag.javaにコードを書き加えることとします。
1 /*<applet code="net/sys5jp/basic/Sunflag.class"
2 codebase="../../../"
3 width=400 height=280>
4 </applet>*/
5
6 package net.sys5jp.basic;
7
8 import java.applet.*;
9 import java.awt.*;
10 import java.lang.*;
11
12 public class Sunflag extends Applet {
13 Dimension dim;
14 Color suncolor = new Color(255, 0, 0);
15 Color backcolor = new Color(255, 255, 255);
16
17 public void paint(Graphics g) {
18 int x, y, dist;
19
20 dim = getSize();
21 x = dim.width * 28 / 100;
22 y = dim.width * 14 / 100;
23 dist = dim.width * 42 / 100;
24 g.setColor(suncolor);
25 g.fillOval(x, y, dist, dist);
26 }
27
28 public void init() {
29 Color color;
30 String value = getParameter("backcolor");
31 try { color = new Color(Integer.parseInt(value, 16)); }
32 catch(Exception e) { color = null; }
33 if(color != null) {
34 backcolor = color;
35 }
36 setBackground(backcolor);
37 }
38 }
書き終えたら、プログラムをコンパイルしてください。
さらに、/net/sys5jp/Sunflag.html を[basic]フォルダにコピーして、次のように書き換えて、開いてみましょう。
<html>
<head>
<style>
<!--
body {background-color:rgb(192,192,192)}
.center {text-align:center}
td {padding:5px 10px}
-->
</style>
</head>
<body>
<table class="center" border="2">
<tr>
<td>
<applet code="net/sys5jp/basic/Sunflag.class"
codebase="../../../"
width=200 height=140>
</applet>
</td>
<td>
<applet code="net/sys5jp/basic/Sunflag.class"
codebase="../../../"
width=200 height=140>
<param name="backcolor" value="00007f">
</applet>
</td></tr>
<tr>
<td>日の丸</td><td>謙信の旗</td>
</tr>
</table>
</body>
</html>
次のように表示されるはずです。

| トップヘ | 目次ヘ | 前ヘ | 次ヘ |
Copyright (C) 2003 System Five Japan (Mori). All Rights Reserved
Java およびそのほか Java を含む標章は、米国 Sun Microsystems, Inc.の商標です