Jython/Swing #JTextArea: lineWrap

記事一覧Java.use(better, Jython=Swing)《Jython2.5》《復刻版》
Java プログラマーのための Python 導入ガイド

JTextArea: lineWrap

《著》伊藤うさぎ、森こねこ《監修》小粒ちゃん@湘南組、小粒ちゃん@博多組
第1版♪2003/12/29

Jython1.X で作成したセミナー課題を、Jython2.5 で再構成しました。


JTextArea: lineWrap

JTextArea
  • lineWrap -- テキスト領域(幅)に収まらない行を折り返すかどうかを指定します。
  • wrapStyleWord --
  • モジュールを起動すると、
$ jython -i wc02_JTextArea.py
>>> tips2b()

 lineWrap: False, wrapStyleWord: False

 lineWrap: True, wrapStyleWord: False

 lineWrap: True, wrapStyleWord: True

余録:ソースコード

...
from javax.swing import JTabbedPane

def tips2b():   # JTextArea
    subject = JTextArea

    mapping = {}
    
    def text():
        s = list(vars(subject)); s.sort()
        return ", ".join(s)
    
    def view():
        def view_(**keys):
            comp = subject(
                text = text(),
                rows = 8,
                columns = 20,
                **keys
                )
            return JScrollPane(comp), comp

        def stateChanged(e):
            comp = e.source.selectedComponent
            comp = mapping[comp]
            print("lineWrap: %s, wrapStyleWord: %s"%(
                comp.lineWrap,
                comp.wrapStyleWord,
                ))

        tabbedPane = JTabbedPane(
            stateChanged = stateChanged,
            )
        for title, (lineWrap, wrapStyleWord) in zip(
            "ABC", [
                    (False, False),
                    (True , False),
                    (True , True ),
            ]):
            pane, comp = view_(
                lineWrap = lineWrap,
                wrapStyleWord = wrapStyleWord,
                )
            mapping[pane] = comp
            tabbedPane.addTab(title, pane)
        return tabbedPane

    frame = JFrame(
        title = subject.__name__,
        defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
        locationRelativeTo = None,
        )
    frame.add(view())
    frame.pack()
    frame.show()

TOP
》作業中です《


関連記事

Last updated♪2010/06/13