| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

Jython JFrame

提供: MyMemoWiki
2020年2月15日 (土) 08:04時点におけるPiroto (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

Jython JFrame

[[JFrame][Jython Swing][Swing][Jython][Python]]

方針

  • 半ば強引に、[JFrame] [Swingで作成したサンプル]を Jythonに書き換えてみる。

内容

  • イベントディスパッチスレッド

ソースコード

実行例

0747 js jframe.jpg

ソースコード
# -*- coding: utf-8 -*-

from java.lang import *
from java.awt import BorderLayout, Dimension
from javax.swing import SwingUtilities, JFrame, JLabel

class JFrameTest(object):
    def createUI(self):
        # Windowの生成
        frame = JFrame("FrameTest")

        # Windowクローズ時にどうするか
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

        # ダミーコンポーネント
        lbl = JLabel()
        lbl.preferredSize = (200,100)

        # フレームにコンポーネントを乗せる
        frame.contentPane.add(lbl, BorderLayout.CENTER)

        # サイズ調節
        frame.pack()

        # 表示
        frame.visible = True

        # イベントディスパッチスレッドか?
        print 'EventDispatchThread ? %s' % SwingUtilities.isEventDispatchThread()

class Invoker(Runnable):
    def run(self):
        jft = JFrameTest()
        jft.createUI()

SwingUtilities.invokeLater(Invoker())