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

MyMemoWiki

「Jython JTable 1」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
==Jython JTable 1==
+
==[[Jython JTable 1]]==
 
[[Jython Swing]] | [[Swing]] | [[Jython]] | [[Python]] |  
 
[[Jython Swing]] | [[Swing]] | [[Jython]] | [[Python]] |  
  
 
===方針===
 
===方針===
以下を参考に、Jythonでテーブルを実装してみる
+
以下を参考に、[[Jython]]でテーブルを実装してみる
 
*http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
 
*http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
 
*http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#simple
 
*http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#simple
16行目: 16行目:
 
   
 
   
 
  from java.lang import *
 
  from java.lang import *
  from javax.swing import JFrame;
+
  from javax.swing import [[JFrame]];
 
  from javax.swing import JPanel;
 
  from javax.swing import JPanel;
 
  from javax.swing import JScrollPane;
 
  from javax.swing import JScrollPane;
 
  from javax.swing import JTable;
 
  from javax.swing import JTable;
  from javax.swing import SwingUtilities
+
  from javax.swing import [[Swing]]Utilities
 
  from javax.swing.table import TableModel
 
  from javax.swing.table import TableModel
 
  from javax.swing import UIManager
 
  from javax.swing import UIManager
59行目: 59行目:
 
   
 
   
 
     def createUI(self):
 
     def createUI(self):
         frame = JFrame("SimpleTableDemo")
+
         frame = [[JFrame]]("SimpleTableDemo")
         frame.defaultCloseOperation = JFrame.EXIT_ON_CLOSE
+
         frame.defaultCloseOperation = [[JFrame]].EXIT_ON_CLOSE
 
   
 
   
 
         self.opaque = True
 
         self.opaque = True
66行目: 66行目:
 
   
 
   
 
         frame.pack()
 
         frame.pack()
         frame.visible = True
+
         frame.[[vi]]sible = True
 
          
 
          
 
  class MouseListener(MouseAdapter):
 
  class MouseListener(MouseAdapter):
73行目: 73行目:
 
          
 
          
 
     def mouseClicked(self, e):
 
     def mouseClicked(self, e):
         numRows = self.table.rowCount
+
         num[[R]]ows = self.table.rowCount
 
         numCols = self.table.columnCount
 
         numCols = self.table.columnCount
 
         model = self.table.model
 
         model = self.table.model
 
   
 
   
 
         print "Value of data: "
 
         print "Value of data: "
         for i in range(numRows):
+
         for i in range(num[[R]]ows):
 
             print "\t\trow %d:" % i,
 
             print "\t\trow %d:" % i,
 
             for j in range(numCols):
 
             for j in range(numCols):
85行目: 85行目:
 
         print "-" * 25
 
         print "-" * 25
 
   
 
   
  class Invoker(Runnable):
+
  class Invoker([[R]]unnable):
 
     def run(self):
 
     def run(self):
         # Java Look & Feel (Metal) のデフォルトでボールドフォントを使用しない
+
         # [[Java]] Look & Feel (Metal) のデフォルトでボールドフォントを使用しない
 
         UIManager.put("swing.boldMetal", Boolean.FALSE)
 
         UIManager.put("swing.boldMetal", Boolean.FALSE)
 
         sample = JTableTest()
 
         sample = JTableTest()
 
         sample.createUI()
 
         sample.createUI()
 
          
 
          
  SwingUtilities.invokeLater(Invoker())
+
  [[Swing]]Utilities.invokeLater(Invoker())

2020年2月16日 (日) 04:28時点における最新版

Jython JTable 1

Jython Swing | Swing | Jython | Python |

方針

以下を参考に、Jythonでテーブルを実装してみる

ソースコード

実行例

0748 js jtable01.jpg

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

from java.lang import *
from javax.swing import JFrame;
from javax.swing import JPanel;
from javax.swing import JScrollPane;
from javax.swing import JTable;
from javax.swing import SwingUtilities
from javax.swing.table import TableModel
from javax.swing import UIManager
from java.awt import Dimension;
from java.awt import GridLayout;
from java.awt.event import MouseAdapter;
from java.awt.event import MouseEvent;

class JTableTest(JPanel):

    def __init__(self):
        self.DEBUG = True
        super(JTableTest,self).__init__(GridLayout(1,0))

        columnNames = [ "First Name",
                        "Last Name",
                        "Sport",
                        "# of Years",
                        "Vegetarian"]

        data = [
            ["Mary", "Campione","Snowboarding", 5, False],
            ["Alison", "Huml","Rowing", 3, True],
            ["Kathy", "Walrath","Knitting", 2, False],
            ["Sharon", "Zakhour","Speed reading", 20, True],
            ["Philip", "Milne","Pool", 10, False]
        ]

        table = JTable(data, columnNames)
        table.preferredScrollableViewportSize = Dimension(500, 70)
        table.fillsViewportHeight = True

        if self.DEBUG:
            table.addMouseListener(MouseListener(table))

        scrollPane = JScrollPane(table)
        self.add(scrollPane)

    def createUI(self):
        frame = JFrame("SimpleTableDemo")
        frame.defaultCloseOperation = JFrame.EXIT_ON_CLOSE

        self.opaque = True
        frame.contentPane = self

        frame.pack()
        frame.visible = True
        
class MouseListener(MouseAdapter):
    def __init__(self, table):
        self.table = table
        
    def mouseClicked(self, e):
        numRows = self.table.rowCount
        numCols = self.table.columnCount
        model = self.table.model

        print "Value of data: "
        for i in range(numRows):
            print "\t\trow %d:" % i,
            for j in range(numCols):
                print "\t%s" % model.getValueAt(i, j),
            print ""
        print "-" * 25

class Invoker(Runnable):
    def run(self):
        # Java Look & Feel (Metal) のデフォルトでボールドフォントを使用しない
        UIManager.put("swing.boldMetal", Boolean.FALSE)
        sample = JTableTest()
        sample.createUI()
        
SwingUtilities.invokeLater(Invoker())