~/home_Jython/JFC-Swing/JList_/ColorChart-JList/colorJList.py

INDEX Python.use(better, Java) #Jython

》作業中です《


#! /usr/bin/env python
# coding: utf-8
## ----------------------------------------
##
## (C) Copyright 2000-2010, 小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
##
## ----------------------------------------
#...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
"""
>>> tips()

>>> ## ----------------------------------------
>>> None
version: #1.0.08
"""
## ---------------------------------------- bash
"""
stty erase ^H
PS1="$ "
alias jython="/Users/sketch/home_Jython/_release/jython2.5.0/bin/jython"
"""
## ---------------------------------------- Java/Jython
## ---------------------------------------- JFC/Swing
## ---------------------------------------- demo: java
## ---------------------------------------- demo: jython
"""
$ cd ~/home_Jython/apple_/refactoring/_swingTimer/
$ jython -i swingColor.py

"""
## ----------------------------------------
from javax.swing import JFrame

def tips():
    frame = JFrame(
        title = "Color",
        size = (250,100),
        defaultCloseOperation = JFrame.EXIT_ON_CLOSE,
        )
    TIPS(master = frame)
    frame.visible = True

## ----------------------------------------
from javax.swing import DefaultListModel
from javax.swing import JList
from javax.swing import JPanel
from javax.swing import JScrollPane
from javax.swing import JSplitPane

from pawt import colors

class TIPS():
####    colorNames = list(vars(colors))
####    colorNames = sorted(list(vars(colors)))
    colorNames = [e for e in dir(colors) if not e.startswith("_")]

    def __init__(self, master, *args, **keys):
        canvasPane = self._canvasPane(
            minimumSize = (50,100),
            )
        controlPane = self._controlPane(
            items = self.colorNames,
            minimumSize = (80,100),
            valueChanged = self.valueChanged,
            )
        self.splitPane = self._splitPane(
            leftComponent = canvasPane,
            rightComponent = controlPane,
            )
        master.contentPane = self.splitPane

    def _canvasPane(self, **keys):
        comp = JPanel(**keys)
        self.canvas = comp
        return comp

    def _controlPane(self, items, valueChanged, **keys):
        model = DefaultListModel()
        for e in items:
            model.addElement(e)
        comp = JList(
            model = model,
            valueChanged = valueChanged,
            )
        pane = JScrollPane(
            viewportView = comp,
            **keys
            )
        return pane

    def _splitPane(self, **keys):
        pane = JSplitPane(
            orientation = JSplitPane.HORIZONTAL_SPLIT,
            dividerLocation = 100,
            **keys
            )
        return pane        

    ## ----------------------------------------
    def valueChanged(self, e):                  # ListSelectionListener
        s = e.source.selectedValue
        self.canvas.background = getattr(colors, s)

## ----------------------------------------
## ----------------------------------------
from time import ctime
from sys import argv, version

def inform(n=60):
    print("="*n)
    print("Version: %s"%version.split("\n")[0])
    print("Module : %s"%argv[0].split("/")[-1])
    print("Date   : %s"%ctime())
    print("="*n)

## ----------------------------------------
from doctest import testmod

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

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

Last updated♪2010/03/22