Java/Python 導入ガイド:swing/Jython - View

Java プログラマーのための Python 導入ガイド記事一覧

Java プログラマーのための Python 導入ガイド〈初級/基礎編〉《Jython2.5》
swing/Jython - View

《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03

》作業中です《

■ 概要

Python の組み込み型の機能を Swing/GUI を利用して「視覚的に」理解できるようにします。

 組み込み型の機能を視覚的に確認できるツールがあると、より効果的な学習ができます。
 今回は、Swing/GUI を利用した学習用ツールを作成するとともに、
 組み込み型 list と、JList/DefaultListModel との相互理解を目指します。
■ 関連記事

事例:list.append

class XListView(JPanel):
    def __init__(self, model):
        self.model = model
        self.layout = BorderLayout()

        self.list = JList(
            model = model,
            valueChanged = self.valueChanged,
            fixedCellWidth = 80,
            )
        self.textArea = JTextArea(
            lineWrap=True,
            wrapStyleWord=True,
            )
        for e, constraints in [
            (self.list,     BorderLayout.WEST  ),
            (self.textArea, BorderLayout.CENTER),
        ]:
            self.add(JScrollPane(e), constraints)

    def valueChanged(self, e):
        """
        public Object get(int index)
        """
        index = self.list.selectedIndex
        if index == None: return
        if index == 0:
            s = self.model._list
        else:
            s = self.model.get(index)
        self.textArea.text = str(s)

## ----------------------------------------
def ex(target):    
    pass                                    ;global Xmodel
    frame = JFrame(
        title = target.__class__.__name__,
        size = (250,150),
        defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
        )
    model = Model(target)                   ;Xmodel = model
    frame.contentPane.add(model.view)
    frame.visible = True
    return frame
    
## ----------------------------------------
Xmodel = None

if __name__=='__main__':
    pass                                    ;print "... #1.0b"
    ex("ABC")

DefaultListModel.addElement