Java の素描 #012: タブ付の枠を利用する
《前の記事|記事一覧|次の記事》
Java.use(better, Jython=Swing)
Jython 弾丸ツアー -- FIFA World Cup への道
■ Step12: タブ付の枠を利用する
タブ付き枠を利用して、グループ別にチームを管理します。
from javax.swing import JTabbedPane
...
class TopPanel(JPanel):
def __init__(self, master, *args, **keys):
...
self.group = None
self.label = {}
def leftComponent(group):
...
def rightComponent(group):
...
def splitPane(group):
comp = JSplitPane(
...
leftComponent = leftComponent(group),
rightComponent = rightComponent(group),
)
return comp
def tabbedPane():
def stateChanged(e):
index = e.source.selectedIndex
self.group = WcModel.groupTabAt(index)
comp = JTabbedPane(
stateChanged = stateChanged,
)
for e in WcModel.groupTabs:
comp.addTab(e, splitPane(e))
return comp
## ----------------------------------------
comp = tabbedPane()
def update_(self, team):
comp = self.label[self.group]
comp.icon = ImageIcon("squad/%s.gif"%team)
comp.text = WcModel.teamName(team)
## ---------------------------------------- wcModel.py
class WcModel:
groupTabs = "ABCDEFGH"
@classmethod
def teamName(self, team):
return self._teamNames[team]
@classmethod
def teamsBelongTo(self, group):
return [k
for e in self._groups[group] for k,v in e.items()]
@classmethod
def groupTabAt(self, index):
return self.groupTabs[index]
》作業中です《
↑ TOP
Last updated♪2010/07/13