Python 弾丸ツアー/Java: JavaBeans 準拠 ... step 1: キーワード引数

OOPデザインパターンリファクタリング

Python.use(better); Python 弾丸ツアー/Java: JFC/Swing 編
>>> JavaBeans 準拠
step 1: キーワード引数
《Python3.1|Jython2.5|IronPython2.6》

《著》小粒ちゃん@湘南組《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/23 ● 第4版♪2010/03/08

step 1: ウィンドウを表示する

■ キーワード引数

 ̄キーワード引数を利用すると、次のようにして、

       frame = JFrame(
            title = "Swing",
            defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
            preferredSize = (150, 50),
            )
        frame.pack()
        frame.visible = True

クラス呼び出しのときに、必要な属性を初期設定できます。

《TIPS》ウィンドウ枠:JFrame

 ̄クラス JFrame は、ウィンドウの枠を規定したものです。表示する位置を指定せずに、大きさ(幅, 高さ)だけを指定したいときには、

>>> keys = dict(title="^_^",visible=True)
>>> JFrame(size=(100,50), **keys)

また、大きさとともに位置(x座標, y座標, 幅, 高さ)を指定したいときには、

>>> JFrame(bounds=(200,0,100,50), **keys).title = "..)^.^)"

とすると、より右側にウィンドウが表示されます。このとき、規定値として指定したタイトルを、ウィンドウを表示した後で再設定しています。さらに、引数を省略したときには、

>>> JFrame(**keys).bounds
java.awt.Rectangle[x=0,y=22,width=128,height=37]

タイトルを提示するのに必要な領域(高さ=22)が確保されたのが分かります。

《TIPS》キーワード引数と辞書:

 ̄キーワード引数を利用すると、柔軟なコードを記述できます。たとえば、ウィンドウを表示したいときに、

>>> f = JFrame(); f.visible = True

とする代わりに、キーワード引数を利用すると、より簡潔に

>>> JFrame(visible=True)

と記述できます。また、タイトルを指定したいときには、

>>> JFrame("happy", visible=True)

それを第1引数に指定するのが通例ですが、キーワード引数を利用すると、

>>> JFrame(size=(100,50), background=Color.yellow, title="happy", visible=True)

指定する位置を気にせず(思い付くまま)にコードを記述できます。さらに、よく使うキーワード引数の要素対を辞書に登録しておくと、次のように簡潔な表現ができます。

>>> keys = dict(background=Color.yellow, size=(100,50))
>>> JFrame("happy", visible=True, **keys)

TOP
》作業中です《