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