のんびりした人の日記 -34ページ目

のんびりした人の日記

仕事の愚痴とアニメ関連のことを書いていきます。

最近はプログラミングの勉強ばっかりやっています。

最近買ったジャスナスはキャラはいいけどシナリオがなんか中途半端だったしなぁ。

んで1月に楽しみにしていたLOVESICK PUPPIESは2月に延期されて、プリズムリコレクションと同じ月になってしまったし、Fate/Extra CCCも3月末に発売日が変更されてしまった。


また、Fateのほうはいつものことだからいいし、なんか逆に延期しない方が不安になってくるようにもなってきたからそれはそれでいいし。型月さんは延期はするけどクオリティは高いからね。

いつも通り期待して待っています。


さて、そしたら1月は本当に大学の定期試験とか5月の会計士試験の勉強をちゃんとしなさいという感じになってきたので、今のプログラミングの勉強はjavaのGUIについてやっているのですけど、それも1月のはじめには終わりそうなので、そこからは会計士の勉強をしようと思います。

大学院入ってみんなとレベルが違ったらいやだからね。


んで、2月は結構お金が必要になりそうなので1月は節約してそれに備えたいと思います。


関西にいる期間もあと2カ月になりました。さっさと北海道に帰りたいけど、まぁ関西にいる間はできることをやっていろいろ楽しみたいと思います。

レイアウトばかりやっていても飽きそうなのでコンポーネントを一通りやっていく途中ぐらいでちょくちょくコンポーネントに合いそうなレイアウトをやっていこうと思います。


今回はボタンについての基本的な設定について。


ボタンというコンポーネントはJButtonクラスのオブジェクトを生成することで作ることができます。JButtonクラスはjavax.swing.JComponentクラスのサブクラスです。また、javax.swing.JComponentクラスのスーパークラスとしてAbstractButtonクラスというものがあり、これがボタン系を扱うクラス全般のスーパークラスとなります。


基本的には、


JButton btn=new JButton();


でボタンオブジェクトは生成できます。また、この右辺のかっこのなかに文字列を引数として渡すとそれがボタン上に表示されることになります。オブジェクト生成時にボタンに表示される文字列を設定しなくても、


btn.setText(Stringtext);


というように、メソッドを使うことで表示される文字列を設定することができます。文字列を入力する際には文字列をダブルクォーテーションでくくるのをお忘れなく。


次に、ウィンドウに表示されているボタンの表示方法について設定を行います。

まずはボタンの枠について。ボタンには初期設定として枠がかかれていますが、これは消すことができます。


btn.setBorderPainted(false);


このメソッドの引数をfalseに設定することで枠を消すことができます。また、trueにすると枠がかかれることになります。


また、ボタンは初期状態ではプログラムを実行したときにはウィンドウから浮き上がっているように見えますが、これについても設定を変更することでこの浮き上がっている感をなくすことができます。


btn.setContentAreaFilled(false);


このメソッドの引数をfalseに設定することでそれが実現できます。やりかたとしては枠と消す方法と同じです。



さて、つぎはボタンの大きさを変更するときにはどうすればいいのかということなのですが、これにはDimensionクラスのオブジェクトを生成する必要があります。


Dimension ds=new Dimension();


引数を何も渡さない時には横および縦のサイズが0のオブジェクトが生成されます。引数を渡す時には(横,縦)の順番で設定します。また、Dimensionオブジェクトを2つ以上生成するときに、以前生成したオブジェクトのサイズと同じものに設定したい時があった場合には、引数にそのDimensionオブジェクトを引数に設定することでそれが可能になります。


そして生成したDimensionクラスのオブジェクトを引数に渡して


btn.setPreferredSize(ds);


というメソッドを使うことでボタンのサイズを変更することができます。



この後もしばらくはコンポーネントに関することをやると思います。




今回はフローレイアウトで作る時について。


まずは、BorderLayoutと同様にレイアウトのオブジェクトを生成します。

FlowLayout fl=new FlowLayout();


次にContainerクラスのオブジェクトつまりパーツを載せていく土台をFlowLayoutのデザインにするという作業をしますが、命令文一つです。


cont.setLayout(fl);


setLayoutというメソッドはContainerクラスのものです。かっこ内にはレイアウトのオブジェクトを入れます。それによって土台のデザインが変更されます(土台自体のデザインというわけではなく、パーツの置かれ方が変わるという方が正確かな)。


あとは前回同様にコンポーネントを追加していくだけ。


FlowLayoutの場合は、追加したらその順番にコンポーネントが並べられるので、BorderLyaoutのようにコンポーネントを配置する場所を指定する必要がありません。なので、


cont.add(btn1);


といった感じでおけ!


FlowLayoutオブジェクトを生成する際に、右辺のかっこないを空欄にしておくと、コンポーネントの並び方は中央揃えで左から順番に並べられますが、設定によってはいろいろと並び方を変えることができます。また、コンポーネント間の間隔もここで設定することができます。


FlowLayout lf=new FlowLayout(配置引数,水平方向の間隔,垂直方向の間隔);


上記の右辺のについて左から順番に説明を。

配置引数というのは、コンポーネントをどのように並べていくかを決めるもので、以下のようなものがあります。

・LEFT:左から並べる

・RIGHT:右から並べる

・CENTER:中央揃え(デフォルト)

・LEADING:全体として左寄せで左から並べる

のんびりした人の日記-FlowLayout-LEADING


・TRAILING:全体として右寄せで左から並べる


のんびりした人の日記-FlowLayout-TRAILING


これらの用い方は、配置引数のところで「FlowLayout.」に続けて上記のいずれかを続けて記述すればいいです。


また、コンポーネント間の間隔を決める第2、第3引数については整数型の値を記述します。この時の間隔の単位はピクセルで設定されます。



また、コンポーネントの間隔の設定はメソッドを使ってやることもできます。

FlowLayoutクラスのオブジェクトのsetHgap(int hgap)で水平方向の間隔を、setVgap(int Vgap)で垂直方向の間隔を設定することができます。

このときは、FlowLayoutオブジェクトの生成時にはコンポーネントの配置方法のみを引数に記述するだけで大丈夫です。



こんなもんでしょうかね。眠い。。。。。。。