Demo.applet.deprecated.CoordinatesDemo.py Maven / Gradle / Ivy
"""A rough translation of an example from the Java Tutorial
http://java.sun.com/docs/books/tutorial/
This example shows how to do very simple Canvas Drawing
"""
from java import applet, awt
from pawt import GridBag
class CoordinatesDemo(applet.Applet):
def init(self):
bag = GridBag(self)
self.framedArea = FramedArea(self)
bag.addRow(self.framedArea, weighty=1.0, fill='BOTH')
self.label = awt.Label('Click within the framed area')
bag.addRow(self.label, weightx=1.0, weighty=0.0, fill='HORIZONTAL')
def updateLabel(self, point):
text = 'Click occurred at coordinate (%d, %d).'
self.label.text = text % (point.x, point.y)
class FramedArea(awt.Panel):
def __init__(self, controller):
self.background = awt.Color.lightGray
self.setLayout(awt.GridLayout(1,0))
self.add(CoordinateArea(controller))
def getInsets(self):
return awt.Insets(4,4,5,5)
def paint(self, g):
d = self.size
g.color = self.background
g.draw3DRect(0, 0, d.width-1, d.height-1, 1)
g.draw3DRect(3, 3, d.width-7, d.height-7, 1)
class CoordinateArea(awt.Canvas):
def __init__(self, controller):
self.mousePressed = self.push
self.controller = controller
def push(self, e):
try:
self.point.x = e.x
self.point.y = e.y
except AttributeError:
self.point = awt.Point(e.x, e.y)
self.repaint()
def paint(self, g):
if hasattr(self, 'point'):
self.controller.updateLabel(self.point)
g.fillRect(self.point.x-1, self.point.y-1, 2, 2)
if __name__ == '__main__':
import pawt
pawt.test(CoordinatesDemo(), size=(300, 200))
© 2015 - 2025 Weber Informatics LLC | Privacy Policy