計算機っぽいGUI

30分プログラム、その367。id:mzp:20080902:calcで電卓のロジック部分を作ったので、こんどはGUI部分を作ってみる。
Tkとかは大変そうだったので、JythonでSwingを叩いてみた。

使い方

$ jython calc-gui.py


ソースコード

# -*- mode:python; coding:utf-8 -*-
#
# calc-gui.py -
#
# Copyright(C) 2008 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2008/09/17 21:55:49
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

from java.awt import *
from javax.swing import *

def bag(x,y,w=1,h=1,wx=1,wy=1,anchor=GridBagConstraints.CENTER,
        fill=GridBagConstraints.BOTH,px=0,py=0):
    c = GridBagConstraints()
    c.gridx = x
    c.gridy = y
    c.gridwidth = w
    c.gridheight = h
    c.weightx = wx
    c.weighty = wy
    c.anchor = GridBagConstraints.NORTHWEST
    c.fill = fill
    c.ipadx = px
    c.ipady = py
    return c
    
frame = JFrame('Hello world')
frame.setSize(400,400)
frame.setLayout(GridBagLayout())
frame.add(JTextField('---'),bag(0,0,4))
frame.add(JButton('9'),bag(2,1))
frame.add(JButton('8'),bag(1,1))
frame.add(JButton('7'),bag(0,1))

frame.add(JButton('6'),bag(2,2))
frame.add(JButton('5'),bag(1,2))
frame.add(JButton('4'),bag(0,2))

frame.add(JButton('3'),bag(2,3))
frame.add(JButton('2'),bag(1,3))
frame.add(JButton('1'),bag(0,3))

frame.add(JButton('0'),bag(0,4,w=2))
frame.add(JButton('.'),bag(2,4))

frame.add(JButton('-'),bag(3,1))
frame.add(JButton('+'),bag(3,2))
frame.add(JButton('='),bag(3,3,h=2))

frame.setVisible(True)