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

MyMemoWiki

「Jython JFrame」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
1行目: 1行目:
 
==Jython JFrame==
 
==Jython JFrame==
[[JFrame][Jython Swing][Swing][Jython][Python]]
+
[[JFrame]][[Jython Swing]][[Swing]][[Jython]][[Python]]
  
 
===方針===
 
===方針===

2020年2月15日 (土) 08:21時点における版

Jython JFrame

JFrameJython SwingSwingJythonPython

方針

  • 半ば強引に、[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())