# The MIT License # # Copyright (c) 2008 akio0911 # # ------------- # Version 0.0.2 # 2008/03/09 # * Added rect() command. # * Added stroke() command. # ------------- # Version 0.0.1 # 2008/03/08 # * Added oval() command. # ------------- from pawt import swing import java class Canvas(java.awt.Canvas): def paint(self, graphics): global g g = graphics tacanvas.graphics.clearRect(0,0,tacanvas.getWidth(),tacanvas.getHeight()) source_or_code = compile(tacode.getText() + "\n\n", "", "exec") exec source_or_code def exit(e): java.lang.System.exit(0) def run(e): tacanvas.repaint() def nbprint(p): s = "%d" % p taconsole.append(s) taconsole.append("\n") def oval(x, y, w, h): global g g.drawOval(x,y,w,h) def rect(x, y, w, h): global g g.drawRect(x, y, w, h) def stroke(red, green, blue): c = java.awt.Color(red, green, blue) g.setColor(c); frame = swing.JFrame('Swing Example', visible = 1) button = swing.JButton('Run!!', actionPerformed = run) tacanvas = swing.JTextArea(5,10) tacanvas = Canvas() tacanvas.setPreferredSize(java.awt.Dimension(320, 320)); tacode = swing.JTextArea(5,10) taconsole = swing.JTextArea(5,10) p = swing.JPanel(); p.setLayout(java.awt.BorderLayout(4,4)); p.add(button, java.awt.BorderLayout.PAGE_START) p.add(tacanvas, java.awt.BorderLayout.LINE_START) p.add(tacode, java.awt.BorderLayout.CENTER) p.add(taconsole, java.awt.BorderLayout.PAGE_END) frame.contentPane.add(p, java.awt.BorderLayout.CENTER) frame.pack()