Java.use(better, Jython=Swing);
《前の記事|記事一覧|次の記事》
Java.use(better, Jython=Swing);
例題で学ぶ Jython/Swing フレームワーク Episode#02: リファクタリング
■ 事例:モジュールを起動する
$ jython2.5.0 -i swing_tips.py >>> ex() 0: step00 -- from javax.swing import JFrame 1: step01 -- from javax.swing import JButton 2: step02 -- class TIPS() 3: step03 -- from javax.swing import JPanel 4: step04 -- def command(self, *args) 5: step05 -- from random import randint 6: step06 -- from javax.swing import JList 7: step07 -- from javax.swing import DefaultListModel 8: step08 -- from javax.swing import JScrollPane 9: step09 -- class Command(object) 10: step10 -- def addElement(self, obj) 11: step11 -- from java.awt import GridLayout 12: step12 -- from javax.swing import JLabel >>> do(4)
次のようなウィンドウが現れます。
- ボタンを押すと、発生したイベントに関する情報が出力されます。
>>> do(4) len(args): 1 args: java.awt.event.ActionEvent[ACTION_PERFORMED,cmd=random,when=1255865647906,modifiers=Button1] on javax.swing.JButton[,46,5,88x29,alignmentX=0.0,alignmentY=0.5,border=apple.laf.CUIAquaButtonBorder$Dynamic@fecda0,flags=288,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=4,left=20,bottom=5,right=20],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=random,defaultCapable=true]
- イベントハンドラー command の実引数の数は、1 です。
- 発生したイベントは、ActionEvent です。
- ボタンには、テキスト text=random が設定されます。
■ 事例:コードの解説
def step04(): class TIPS(): def __init__(self, master): panel = JPanel() master.add(panel) comp = JButton( text = "random", #1: actionPerformed = self.command, #2: ) panel.add(comp) def command(self, *args): #3: print("-"*20) print("len(args): %d"%len(args)) print("args: %s"%args) ## ---------------------------------------- frame = JFrame( title = "swing: step04", size = (180,100), ) TIPS(master=frame) frame.visible = True
》こちらに移動中です《