気軽に Swing《3》JButton: ホーム&アウェー 1/5

Previous|1/5|Next
Java.use(better, Swing=Jython) # 萬プログラマーのための Python 導入ガイド記事一覧
《3》JButton: ホーム&アウェー

《著》伊藤うさぎ、森こねこ《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/12/29 ● 第2版♪2006/10/02 ● 更新♪2008/09/18

対象読者

こんな症状を抱えているなら (@.@)
Java で構築されたレガシーシステムを再構成したい
【効能】既存のリソースを再利用しつつ、同時に開発効率を改善できるかも
【注意】記事の主旨から「先に示したプログラムが後で覆される」事例が含まれます。次の展開(失敗から何を学ぶか/学ばないか)を予想しながら読み進むのも一興です。

今回の課題:各チームのユニフォームを見てみよう

【要求仕様】各チームのユニフォーム(Home and Away)を表示したい。
各チームのユニフォーム(画像)は、サンプルフォルダー Kits にあります。


アプリケーションを起動すると、各チームの情報が表示されます。1)リスト項目からチームを選択すると、2)ボタンにそのチームの旗が表示されます。このボタンを選択すると、3)新たなウィンドウにユニフォームが表示されます。これを実現したのが、次のコードです。

class TeamPanel(JPanel):
... No change ...
def __init__(self, listData):
self.layout = BorderLayout()
e = self.imageView = JButton(
actionPerformed=self.actionPerformed,
)
self.add(e, BorderLayout.NORTH)
... No change ...
def actionPerformed(self, e):
KitPanel(e.source.actionCommand).show()

class KitPanel(JPanel):
home = "Kits/kit-%s.gif"
away = "Kits/kit-%s-res.gif"
def __init__(self, team):
e = self.team = team
self.add(JLabel(
icon=ImageIcon(self.home%e), text="Home",
))
self.add(JLabel(
icon=ImageIcon(self.away%e), text="Away",
))
def show(self):
frame = JFrame(
title=self.team,
)
frame.add(self)
frame.pack()
frame.show()

def ex_TeamTextPanel():
... No change ...

ではこれから、このコードに至るまでの物語を始めます。今回の要求仕様では、ユニフォームを表示するために、新たなパネル/ウィンドウが必要になります。


Previous|1/5|Next