JFrame frame = new JFrame(“タイトル”);
frame.setBounds(100,100,600,400);
なんちゃらかんちゃら
・
・
frame.setVisible(true);
開きますわな。
生徒「先生、なんでこれでWindow表示するんですか?」
私「frameってJFrameクラスでしょ、setVisibleっていう
メソッド持ってて、trueを与えると表示するんだよ。」
生徒「それで、なんで表示するんですか?」
この問いにどう答えます?
この質問に遭遇した時、真っ先に思い出したのが、
エジソンの逸話でした。
「1+1は何故2なんですか?」
僕はこの逸話を勘違いしていたらしく、
エジソンは非常に根源的な疑問を抱いて問いただしたのだと思っていました。
setVisibleで何故Windowが開くのか、という問いも同レベルで根源的な質問だと思ったのです。
その時の僕の情けない答えは、
「うーん、これはね、Javaを作った人たちが、setVisibleでWindowが開くように作ったんだよ。」
これが精一杯。
この答え、下手するとアセンブラレベルまで降りないと説明出来なくないですか。
どこかのレジスタだか、メモリだか、どこかになんちゃらの値が入ると、画面のどこそこに点が表れる。その集積がWindowの形となって表示される。みたいなことじゃなかったかな、くらいしか理解がない。
Window開くたんびにそんな膨大なプログラム描いてられないから、それを一つのメソッドとしてまとめてある、ってことくらい。それが僕の限度です。
こういう疑問を持つ生徒にはもっとマシな答えをしてあげたいものです。
この辺り、以前から気になりつつ読まなかったものです。
人に教える立場になってて知らんぷりもないかなぁ、なんて考え始めている今日この頃。
ちなみに、エジソンですが、どうやら全く違うようですね。
教師が粘土を使って1+1=2を説明しているところを、
粘土を合わせてしまえば一つなのに何故2なのか、っていうツッコミだったらしく、これはやはり頭が良かったんですね。
どちらかいうと大人をおちょくるほど頭の良い手に負えないガキンチョだったのかも知れません。
なかなか理解が進まない生徒に遭遇する度にこの逸話を思い出して、人間どこでどう化けるかわかならい、と思って粘り強く教えようとして来たのですが、エジソンに裏切られた気分でした(笑)
しかし、出来の悪い生徒ってやはり僕には宝です。
だって強烈に重いバーベルみたいなものじゃないですか。
出来の良い生徒はこちらが汗かかなくても伸びて行っちゃいますから。
僕の筋力を高めるのは出来の悪い生徒です。
この画面キャプチャでお気づきかも知れませんが、Macで書いてます。自宅でwin10に生まれ変わったPCは晴れてメインマシンとして事務所へ移動したので、自宅のマシンがなくなってしまい、久々にこのMacbook Proの電源入れました。
まー色々アップデートで時間かかったこと。
しかもノロい(汗)
キーボード最高ですけどね。配置、深さ、重さ満点!