Jython で JavaFX の 入力フォームを作成する
Jython から、JavaFX を使えるようになった ので、引き続きJythonで、チュートリアルを進めていこう。
Createing a Form in JavaFX
こんな感じの入力フォームを作成。
Eclipse + PyDev でコードを書くと、参照も保管されるし、ストレス無くコーディングできるので、悪くない。
# -*- coding: utf-8 -*-
from java.lang import String
from javafx.application import Application
from javafx.event import EventHandler
from javafx.geometry import Insets, Pos
from javafx.scene import Scene
from javafx.scene.control import Button, Label, TextField, PasswordField
from javafx.scene.layout import GridPane, HBox
from javafx.scene.paint import Color
from javafx.scene.text import Text, Font, FontWeight
class SiginHandler(EventHandler):
def __init__(self):
self.actiontarget = None
def handle(self, event):
self.actiontarget.setFill(Color.FIREBRICK)
self.actiontarget.setText(u"サイイインボタンが押されました")
class FormFx(Application):
'''
http://docs.oracle.com/javafx/2/get_started/form.htm
'''
def main(self):
# パラメータに配列を渡せない!?
super(FormFx, self).launch(self.__class__, String(""))
def start(self, primaryStage):
primaryStage.setTitle("JavaFX Welcom")
grid = GridPane()
grid.setHgap(10)
grid.setVgap(10)
grid.setPadding(Insets(25,25,25,25))
primaryStage.setScene(Scene(grid,300,275))
scenetitle = Text(u"ようこそ")
scenetitle.setFont(Font.font("Meiryo", FontWeight.NORMAL, 20))
grid.add(scenetitle, 0, 0, 2, 1)
userName = Label(u"ユーザー名:")
grid.add(userName, 0, 1)
userTextField = TextField()
grid.add(userTextField, 1, 1)
pw = Label(u"パスワード:")
grid.add(pw, 0, 2)
pwBox = PasswordField()
grid.add(pwBox, 1, 2)
actiontarget = Text()
grid.add(actiontarget, 1, 6)
btn = Button(u"サインイン")
hbBtn = HBox(10)
hbBtn.setAlignment(Pos.BOTTOM_RIGHT)
hbBtn.getChildren().add(btn)
hdr = SiginHandler()
hdr.actiontarget = actiontarget
btn.setOnAction(hdr)
grid.add(hbBtn, 1, 4)
primaryStage.show()
if __name__ == '__main__':
h = FormFx()
h.main()
上記チュートリアルから、レイアウトのポイント図を引用
