2008年1月アーカイブ

javaでアプリケーションを作っていて、ダイアログを表示しようと調べみたら、
javax.swing.JDialogというクラスが見つかったのだが、もうひとつ、javax.swing.JOptionPaneを使い、
JOptionPane#show○○Dialogを使って実装することも出来る。


結局、JDialogは使わず、JOptionPaneの方を用いたので、細かい比較などは分からないが、
2つの違いについて感じたことを書く


○JDialog
・モーダルもモーダレスも両方できる
・自分でコンポーネントをaddすることによって、表示の細かな設定が出来る

○JOptionPane
・常にモーダル
・YesNoやOKCancelなど、よく使うものはデフォルトであり、簡単に作れるが、拡張性が薄い(気がする
・どのボタンが押されたかなどは、返り値として取得できる。



結局、単純なダイアログならJOtionPaneの方が楽ですよ的なノリ
モーダルは、そのダイアログが閉じられるまで、元のFrameにフォーカスできない状態のこと



<参考>
ダイアログ Swing入門
JavaTM Platform, Standard Edition 6 API 仕様

swingニガテです。

きっと来週にはまた忘れてしまうので、メモしときます。


・影をつける
影じゃなくて、実はボーダーらしいです
ボーダーは、javax.swing.border.BevelBorderクラスを使って、

とやれば出来る。


・フォントの設定
これは、リファレンス読めば分かるけど、メモ



・文字列を中央揃えで表示

中央揃え以外にも、右寄せ(JLabel.RIGHT)、左寄せ(JLabel.LEFT)もある。


・表示位置を座標指定
貼り付けるJPanelのLayoutを無効にし、Component#setBounds(int x, int y, int width, int height)を使う。
Componentで定義されたメソッドなので、JLabelだけじゃなくて、これを継承したJButtonなどでも使える。





<参考サイト>
Java Drive (http://www.javadrive.jp/tutorial/index.html)
大学入試センター試験まであと二週間

最近よく思うのは、
プログラミングを独学で勉強してたおかげで受験勉強の効率がカオスなコトになったのではないかということ。
だって、家に帰るとまずPCの電源をいれ、立ち上がるまでの時間に手を洗ったり水分補給したり・・・
高3になるまで家で勉強したことがなかったのに(もちろん、宿題とかやってないww)、W大に受かった。


学校の数学・物理の先生が、ホントにスゴイ人だったっていうのはあるけど、3年間同じ授業を受けてきた友達でも、その大学を落ちた人はいるし、何が違うのが考えたところ、


やっぱり、Javaをやってたからだ!という考えに行き着いた


そんなことを考えてたら、IDEA*IDEAさんの今日(これを書き始めた当時)の記事のタイトルがプログラミングから学んだことで冒頭が、

「プログラミングは小学校の必修科目にすべき!」と個人的に思っていますが、プログラミングからは本当に多くのことを学んでいます。

なんとリアルタイムな!!!と思ったので、自分の考えをまとめる良い機会なので頑張ってまとめてみます。



プログラミングが受験勉強において役に立ったこと

プログラミングを勉強したことが、受験勉強において役に立ったこと


文法公式を身につけ、サンプル解法を知り、それを組み合わせる応用する
プログラムを書くために必要なのは変数の使い方や、if文、for文などの文法ぐらいであって、いくつかのサンプルさえあれば、別にライブラリとかオブジェクト指向なんか知らなくてもプログラムは書ける。
(ここでは、プログラムを書くスキルではなく、プログラムを書く姿勢に注目したい)
プログラミングとは、あくまでif文やfor文の組み合わせという応用や、サンプルを見ながら一行消しては実行して・・・というサンプルの真似をしながら自分のオリジナルへと変化させていく。また、いくつかのサンプル組み合わせて、作りたいプログラムに近づけていく、というものだと思う

受験の場合は、
センターレベルなら、応用はさほど必要ない。過去問で出た問題、今まで習った問題とほとんど同じ解法で解けるからだ。
だが、2次・私大ではそうはいかない。
旧帝大や早慶レベルになると、見たこともない、今までと同じ解法では解けないような問題がたくさん出る。
でも、実際に使う公式は、今まで習ったものに過ぎない。
その、今まで習った公式を、今まで自分が解いてきた解法を、いかに応用できるか、いかに組み合わせられるか、もしくは、いかに多くの解法を知っているか。が問われることになる。



つまり、テスト勉強=公式を覚える、問題の解法を覚えるで今までやってきた人は、確かに学校の期末テストやセンターでは点が取れるが、2次で落ちる場合がままある。それは、公式⇒解法⇒応用の第二段階で止まっているからだと思う。

プログラミングの世界では、プログラミングの勉強=文法を覚える、サンプルを覚えるではない。
それだと、サンプルと同じプログラムしかかけないからだ。サンプルと同じものが書けても、それはコピペであり、オリジナルのアプリケーションを作ることは出来ない。というか、applicationというコトバ自体、応用という意味なのだ。つまり、プログラミングをかじったことがある人は、組み合わせ=応用という第三段階の重要性を知っている。

このサンプルで呼んでいるメソッドはどういう意味なんだろうとか、もっと良いやり方はないのかなとか、あ、この前のあれが使えるんじゃないのかとか、こういうことをやるにはどうすればいいんだろうとかと考える習慣が身につきます。
それが普段の勉強では、単に先生の書いた解法を覚えるのではなく、なんでこういう計算をしているんだろう・・・もっと良いやり方はないかな、あのやり方が応用できるじゃん。と暗記から理解へ、そして応用へと発展し、頭が良いと呼ばれるようになるのではないかと思う。



もちろん必ずしも受験にプログラミングが必要であるというつもりはない。だが、数学や物理がニガテな多くの人が出来ない応用とい う壁を越えるための1つの方法として、プログラミングを提案したい。

そして、ここで得た考えというか姿勢というか精神は、受験という枠を超えて今後の人生に大きなプラスになる(と信じている






・ゆとり教育が目指したものと教える側の能力
授業というのは、あくまで学ぶというコトの1要素に過ぎない。
↑のと若干被るが、応用というのは、人に手取り足取り教えてもらうものではなく、自分で見つけるものだと思う。
プログラミングを独学でやっていて、身についたものは、能動的な勉強であり、自分で考えて勉強することである。
(日本の)学校というものは、授業という受動的なものを受け、宿題というこれまた与えられたものをこなし、それが評価させる。つまり、ちょっと古いが学校というのはYESマンを育てる場に見える。

もし、小学校でプログラミングが必修となった場合、指導者の能力により、生徒に与える効果は千差万別すると思う
なぜなら、生徒達は今まで通り、教科書を覚え、文法やライブラリを覚え、対策プリントの問題の答えを覚えれば良いという先入観があるからだ。
大学ではプログラミングの授業が必修であり、既に独学で勉強してきた人とそうでない人では、勉強に対する意識が違うように思われる。
大学から始めた人がみんなダメかというと、そうではないが、少なくとも独学でやってきた人はみんな今まで述べてきたことが分かっており、確かに大学から始めた人の中にも同じようにデキル人はたくさんいるが、やはり、受動的な勉強、授業のスライドや過去問しかできない人もたくさんいるのが現実。
文部省が本当にやりたかった『ゆとり教育』とはこういう与えられた、マニュアルをきちんとこなすことのできる人間育成ではなく、自分で考える能力を持った人材育成ではなかったのかと思う。しかし、急にそれを現教師に要求しても、まず抽象的な「総合学習の時間を」などと指示されても無理ではないかと。例え、総合学習としてプログラミングの授業を導入するとしても、生徒全員、いや8割ですら、これまで書いてきたことやidea*ideaさんが得たものを習得さすにはどういう授業をすればよいのか、簡単には答えが出ないかもしれません。
生徒みんながパソコンやゲームが好きで、「じゃぁゲームを作ろう」という風に授業が進められて、さらに生徒は家でプログラミングやネットが自由に使えて、ほっといても生徒が頑張ってくれるようであれば出来そうですが・・ぐらいの感覚です。少なくとも私は




なんか長くなってきて、一度に考えられる文章構成とかのキャパを超えそうなのでこの辺でキリをつけてアップします。
やっぱ、教員免許取ればよかったかなぁ・・・まぁ私立だったらむめんky(ry


<リンク>
プログラミングから学んだこと IDEA*IDEA
明けましておめでとうございます。



まぁ、今回は真面目な話ではないんだけど、実家に帰ったとき(当時ギリ12月)、
リビングにはってあったカレンダーの挿絵が面白くて、ついケータイでパシャっと


急がばなんとかということわざがありますが、この絵を描いた人は、

急ぐならまず、こうしろよ!!!!!的な核心をみんなに伝えたかったようです。



NEC_0155.jpg






























iKnow

あわせて読みたいブログパーツ
Firefox meter