~/home_Jython/JFC-Swing/JTable_/ColorChart-JTable/colorJTable.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.18 """ ## ---------------------------------------- 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_/swingBeans/ $ jython -i swingColor3.py """ ## ---------------------------------------- from javax.swing import JFrame def tips(): frame = JFrame( title = "Color", size = (350,120), defaultCloseOperation = JFrame.EXIT_ON_CLOSE, ) TIPS(master = frame) frame.visible = True ## ---------------------------------------- from javax.swing import JPanel from javax.swing import JScrollPane from javax.swing import JSplitPane from javax.swing import JTable from javax.swing.table import DefaultTableModel from pawt import colors class TIPS(): #### colorNames = sorted(list(vars(colors))) columnNames = "name","red","green","blue", 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( columnNames = self.columnNames, colorNames = self.colorNames, valueChanged = Command(self), minimumSize = (80,100), ) 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, columnNames, colorNames, valueChanged, **keys): def _tableModel(): model = DefaultTableModel() for e in columnNames: model.addColumn(e) for e in colorNames: c = getattr(colors, e) model.addRow([e, c.red, c.green, c.blue]) return model def _table(): comp = JTable( model = _tableModel(), ) # addListSelectionListener comp.selectionModel.valueChanged = valueChanged ## comp.columnModel.selectionModel.valueChanged = valueChanged column = comp.columnModel.getColumn(0) column.preferredWidth = 200 return comp self.table = _table() pane = JScrollPane( viewportView = self.table, **keys ) return pane def _splitPane(self, **keys): pane = JSplitPane( orientation = JSplitPane.HORIZONTAL_SPLIT, dividerLocation = 100, **keys ) return pane def _update(self, value): self.canvas.background = getattr(colors, value) ## ---------------------------------------- class Command: def __init__(self, client): self.client = client def __call__(self, e): # ListSelectionListener table = self.client.table row = table.selectionModel.leadSelectionIndex ## column = table.columnModel.selectionModel.leadSelectionIndex value = table.getValueAt(row, 0) # getValueAt(row, column) self.client._update(value) ## ---------------------------------------- ## ---------------------------------------- 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/25