Java の素描 #012: タブ付の枠を利用する

前の記事記事一覧次の記事
Java.use(better, Jython=Swing)


Jython 弾丸ツアー -- FIFA World Cup への道

Java の素描



相反するものは一致する
不調和なものが最も美しい調和を作る
Heraclitus - Wikipedia

《関連記事》

-

■ 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