余録:worldCup/jython/ex07/wcFrame.py
#! /usr/bin/env python # coding: utf-8 ## ---------------------------------------- ## ## (C) Copyright 2000-2010, 小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部 ## ## ---------------------------------------- ## History: Swing Example "2010 FIFA World Cup South Africa™" ## 2003/07, Java/Jython ## 2006/07, Jython ## 2008/02, Jython 2.2.1 ## 2010/06, Jython 2.5.0 #...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 """ >>> tips() >>> ## ---------------------------------------- >>> None version: #1.0.12 """ from __init__ import * ## ---------------------------------------- demo: jython """ $ cd /Users/sketch/home_sketch/worldCup/jython/ $ jython -i ex07/wcFrame.py """ ## ---------------------------------------- from javax.swing import ImageIcon from javax.swing import JFrame from javax.swing import JLabel from javax.swing import JList from javax.swing import JPanel from javax.swing import JScrollPane from javax.swing import JSplitPane class TopPanel(JPanel): def __init__(self, master, *args, **keys): master.contentPane = self def teams(): return list("ABCDEFGH") def leftComponent(): listData = teams() # class javax.swing.JList # public javax.swing.JList() view = JList( listData, # java.util.Vector valueChanged = self, ) comp = JScrollPane( viewportView = view, preferredSize = (120,150), ) return comp def rightComponent(): view = JLabel( icon = ImageIcon("matches/fifa.png"), ) comp = JScrollPane( viewportView = view, preferredSize = (180,0), ) return comp def splitPane(): comp = JSplitPane( orientation = JSplitPane.HORIZONTAL_SPLIT, oneTouchExpandable = True, dividerLocation = 100, leftComponent = leftComponent(), rightComponent = rightComponent(), ) return comp comp = splitPane() self.add(comp) master.pack() # interface javax.swing.event.ListSelectionListener # public abstract void # javax.swing.event.ListSelectionListener. # valueChanged() def __call__(self, e): # javax.swing.event.ListSelectionEvent value = e.source.selectedValue print("::%s"%value) ## ---------------------------------------- def tips(): global Qt; Qt = \ frame = JFrame( title = "FIFA World Cup #07", size = (320,180), locationRelativeTo = None, defaultCloseOperation = JFrame.EXIT_ON_CLOSE, ) TopPanel(frame) frame.visible = True ## ---------------------------------------- if __name__=='__main__': inform() testmod() ## ========================================
Java の素描 #007: リストを利用する
‖記事一覧‖ Java.use(better, Swing=Jython) #FIFA World Cup への道《Jython2.5》
Java の素描 〜 Jython 弾丸ツアー:時短プログラミング生活のすすめ 〜
《著》森こねこ、伊藤うさぎ、小粒ちゃん@湘南組《監修》タマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2006/04/03 ● 第3版♪2010/06/11
|関連記事|
step07: リストを利用する
- Java の素描 #007《Scala2.8.0》
リストの中に任意の項目を列挙します。
■ 要求仕様: 全チームの一覧表を作成する
全32チームの一覧表(リスト項目)を作成します。各項目を選択すると、チームの情報が得られます。ここでは、既存のコンポーネントの中から
- javax.swing.JList
を利用します。
■ 動作を確認する
任意の項目を提示して、各項目を選択したときの動作を規定します。チームを提示する前の準備として、8つの項目(A から H までの文字)で、その動作を確認します。各項目を選択すると、選択した情報が得られます。
■ プログラムを変更する
## ---------------------------------------- wcFrame.py from javax.swing import JList ... class TopPanel(JPanel): def __init__(self, master, *args, **keys): ... def teams(): return list("ABCDEFGH") def leftComponent(): listData = teams() view = JList( listData, # java.util.Vector valueChanged = self, ) def __call__(self, e): # javax.swing.event.ListSelectionEvent value = e.source.selectedValue print("::%s"%value)
■ プログラムを実行する
$ jython -i ex07/wcFrame.py
>>> ::A
- A
- B
- B
分割した枠の左側にはリスト項目が表示されます。ここで、リスト項目から "A" を選択すると、選択した項目(文字列)が出力されます。
》作業中です《