« Shall_we_Agile = Java.use(better, Python) # Swing《3.1》今回の課題:各チームのユニフォームを見てみよう | トップページ | Shall_we_Agile = Java.use(better, Python) # Swing《3.3》イベントハンドラーを登録する »

2008年3月25日 (火)

Shall_we_Agile = Java.use(better, Python) # Swing《3.2》Swing:JButton

------------ 序 ------------

ここで公開している記事は「キーワード検索」を利用するための便宜的なものです。詳細は、正式版(査読中)をダウンロードしてご覧ください

【目次】関連記事
〔Python/Jython/Swing 入門〕Shall_we_Agile = Java.use(better, Python) # Swing

実際のアプリケーション開発を疑似体験できるように、問題解決に至るまでの紆余曲折を示しながら「繰り返し段階的に」技術を習得するための話題を提 供します。OOP〔Object-Oriented Programming〕を体得するには、五感を通してフィードバックが得られる論理的シミュレーションによって、現実世界を疑似体験するのが効果的で す。この連載で、Java の常識が壊れるかもしれませんが、OOP の可能性は広がります

【注意】連載の主旨から「先に示したプログラムが後で覆される」事例が含まれます。次の展開(失敗から何を学ぶか/学ばないか)を予想しながら読み進むのも一興です。

------------ 本文 ------------

《査読中》

気軽に Swing〔3〕JButton: ホーム&アウェー
Java.use(better,Swing=Jython) 〜 萬プログラマーのための Python 導入ガイド

伊藤うさぎ、森こねこ〔著〕 小泉ひよ子とタマゴ倶楽部〔監修〕

Swing:JButton

【例題】JButton を選択したときに、その日時を表示したい。

Fig02

 JButton を含むウィンドウが現われます。ボタンを選択すると、そのときの日時が出力されます。これを実現したのが、次のコードです。

def ex_JButton_actionPerformed1():
    from java.util import Date
    def now(e): print Date()   
    view = JButton(
        text="What time is it now?",
        icon=ImageIcon("icons/clock-icon.gif"),
        actionPerformed=now,
        )
    frame = JFrame(
        defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
        title="JButton",
        size=(150, 80),
        )
    frame.add(view)
    frame.show()

ボタンを設定する

 JButton は、それを選択したときの処理を規定するのに、便利な機能を提供します。ボタンにテキスト/画像を表示するなら、次のように、

    public JButton(String text, Icon icon)
    public void setText(String text)
    public void setIcon(Icon icon)

コンストラクター JButton(String,Icon) が便利です。また、インスタンス生成後に、メソッド setText(String)/setIcon(Icon) を利用しても同じです。
 先の連載「JavaBeansの美味しい煎り方」で紹介したように、キーワード引数を利用すると便利です。そこで、

    view = JButton(
        text="What time is it now?",
        icon=ImageIcon("icons/clock-icon.gif"),

キーワード引数 text= の後にテキスト text を設定して、キーワード引数 icon= の後にアイコン画像 icon を設定します。これは、次のコードと同じ効果が得られます。

    view = JButton()
    view.setText("What time is it now?")
    view.setIcon(ImageIcon("icons/clock-icon.gif"))

ボタンの動作を規定する

 ボタンを選択したときの処理を特定するときには、補足情報(動作コマンド)を利用できます。それには、次のように、

    public String getActionCommand()

メソッド getActionCommand() が便利です。この例題では、次のようにすると、

    def actionPerformed(self, e):
        KitPanel(e.source.actionCommand).show()

イベントが発生したボタン e.source から、後処理を規定する情報 actionCommand が得られます。動作コマンドを省略すると、規定値として、ボタンのテキストに指定した文字列と同じもの(チーム名)が得られます。これを利用すると、チームが確定するので、そのユニフォームをパネル KitPanel に表示します。

〈つづく〉

|

« Shall_we_Agile = Java.use(better, Python) # Swing《3.1》今回の課題:各チームのユニフォームを見てみよう | トップページ | Shall_we_Agile = Java.use(better, Python) # Swing《3.3》イベントハンドラーを登録する »

.連載: Shall_we_Agile = Java.use(better, Python) # Swing」カテゴリの記事

JML/Java/Eclipse」カテゴリの記事

Jython/Python」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/79839/10815816

この記事へのトラックバック一覧です: Shall_we_Agile = Java.use(better, Python) # Swing《3.2》Swing:JButton:

« Shall_we_Agile = Java.use(better, Python) # Swing《3.1》今回の課題:各チームのユニフォームを見てみよう | トップページ | Shall_we_Agile = Java.use(better, Python) # Swing《3.3》イベントハンドラーを登録する »