余録:worldCup/jython/ex04/wcFrame.py

#! /usr/bin/env python
# coding: utf-8
## ----------------------------------------
##
## (C) Copyright 2000-2010, 小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
##
## ----------------------------------------
## History: Swing Example "2010 FIFA World Cup South Africa™"
##      2003/07, Java/Jython
##      2006/07, Jython
##      2008/02, Jython 2.2.1
##      2010/06, Jython 2.5.0
#...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
"""
>>> tips()

>>> ## ----------------------------------------
>>> None
version: #1.0.09abc
"""
from __init__ import *

## ---------------------------------------- demo: jython
"""
$ cd /Users/sketch/home_sketch/worldCup/jython/
$ jython -i ex04/wcFrame.py

"""
## ----------------------------------------
from javax.swing import ImageIcon
from javax.swing import JFrame
from javax.swing import JLabel
from javax.swing import JPanel
from javax.swing import JSplitPane

class TopPanel(JPanel):
    def __init__(self, master, *args, **keys):
        master.contentPane = self

        label1 = JLabel(
            icon = ImageIcon("matches/wc2010logo.png"),
            text = u"2010 FIFA World Cup South Africa™",
            horizontalAlignment = JLabel.CENTER,
            verticalTextPosition = JLabel.TOP,
            horizontalTextPosition = JLabel.CENTER,
            preferredSize = (120,150),
            )

        label2 = JLabel(
            icon = ImageIcon("matches/fifa.png"),
            preferredSize = (180,0),
            )

        splitPane = JSplitPane(
            orientation = JSplitPane.HORIZONTAL_SPLIT,
            oneTouchExpandable = True,
            dividerLocation = 100,
            leftComponent  = label1,
            rightComponent = label2,
            )
        self.add(splitPane)

## ----------------------------------------
def tips():
    global Qt; Qt = \
    frame = JFrame(
        title = "FIFA World Cup #04",
        size = (320,180),
        locationRelativeTo = None,
        defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
        )
    TopPanel(frame)
    frame.visible = True

## ----------------------------------------
if __name__=='__main__':
    inform()
    testmod()

## ========================================

Java の素描 #004: 分割した枠を利用する

記事一覧 Java.use(better, Swing=Jython) #FIFA World Cup への道《Jython2.5》

Java の素描 Jython 弾丸ツアー:時短プログラミング生活のすすめ 〜

《著》森こねこ、伊藤うさぎ、小粒ちゃん@湘南組《監修》タマゴ倶楽部

第1版♪2003/05/23 ● 第2版♪2006/04/03 ● 第3版♪2010/06/11

Step04: 分割した枠を利用する

二分割した窓枠を用意して、その中に他のコンポーネントを配置します。

from javax.swing import JSplitPane
...
class TopPanel(JPanel):
    def __init__(self, master, *args, **keys):
        ...
        label1 = JLabel(
            icon = ImageIcon("matches/wc2010logo.png"),
            ...
            preferredSize = (120,150),
            )
        label2 = JLabel(
            icon = ImageIcon("matches/fifa.png"),
            preferredSize = (180,0),
            )
        splitPane = JSplitPane(
            orientation = JSplitPane.HORIZONTAL_SPLIT,
            oneTouchExpandable = True,
            dividerLocation = 100,
            leftComponent  = label1,
            rightComponent = label2,
            )
        self.add(splitPane)

## ----------------------------------------
def tips():
    global Qt; Qt = \
    frame = JFrame(
        ...
        )

分割した枠の左側にはラベル(テキストと画像)が、右側にはアイコン画像が表示されます。


■ 何が問題か
左側ではテキストの一部が、右側ではアイコン画像の一部が隠れて見えません。そこで、

》作業中です《


関連記事

  • INDEX《Swing》JSplitPane
  • global

TOP

Last updated♪2010/07/16