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()
上記チュートリアルから、レイアウトのポイント図を引用