Jython で JavaFX の 入力フォームを作成する

Jython から、JavaFX を使えるようになった ので、引き続きJythonで、チュートリアルを進めていこう。

Createing a Form in JavaFX

こんな感じの入力フォームを作成。

jython_fx_form

Eclipse + PyDev でコードを書くと、参照も保管されるし、ストレス無くコーディングできるので、悪くない。

  1. # -*- coding: utf-8 -*-
  2. from java.lang import String
  3. from javafx.application import Application
  4. from javafx.event import EventHandler
  5. from javafx.geometry import Insets, Pos
  6. from javafx.scene import Scene
  7. from javafx.scene.control import Button, Label, TextField, PasswordField
  8. from javafx.scene.layout import GridPane, HBox
  9. from javafx.scene.paint import Color
  10. from javafx.scene.text import Text, Font, FontWeight
  11.  
  12. class SiginHandler(EventHandler):
  13. def __init__(self):
  14. self.actiontarget = None
  15. def handle(self, event):
  16. self.actiontarget.setFill(Color.FIREBRICK)
  17. self.actiontarget.setText(u"サイイインボタンが押されました")
  18. class FormFx(Application):
  19. '''
  20. http://docs.oracle.com/javafx/2/get_started/form.htm
  21. '''
  22. def main(self):
  23. # パラメータに配列を渡せない!?
  24. super(FormFx, self).launch(self.__class__, String(""))
  25. def start(self, primaryStage):
  26. primaryStage.setTitle("JavaFX Welcom")
  27.  
  28. grid = GridPane()
  29. grid.setHgap(10)
  30. grid.setVgap(10)
  31. grid.setPadding(Insets(25,25,25,25))
  32. primaryStage.setScene(Scene(grid,300,275))
  33. scenetitle = Text(u"ようこそ")
  34. scenetitle.setFont(Font.font("Meiryo", FontWeight.NORMAL, 20))
  35. grid.add(scenetitle, 0, 0, 2, 1)
  36.  
  37. userName = Label(u"ユーザー名:")
  38. grid.add(userName, 0, 1)
  39. userTextField = TextField()
  40. grid.add(userTextField, 1, 1)
  41. pw = Label(u"パスワード:")
  42. grid.add(pw, 0, 2)
  43. pwBox = PasswordField()
  44. grid.add(pwBox, 1, 2)
  45. actiontarget = Text()
  46. grid.add(actiontarget, 1, 6)
  47. btn = Button(u"サインイン")
  48. hbBtn = HBox(10)
  49. hbBtn.setAlignment(Pos.BOTTOM_RIGHT)
  50. hbBtn.getChildren().add(btn)
  51. hdr = SiginHandler()
  52. hdr.actiontarget = actiontarget
  53. btn.setOnAction(hdr)
  54. grid.add(hbBtn, 1, 4)
  55. primaryStage.show()
  56. if __name__ == '__main__':
  57. h = FormFx()
  58. h.main()

上記チュートリアルから、レイアウトのポイント図を引用

login_gridlines_co

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の記事

Jython で JavaFX CSSを使う