All Downloads are FREE. Search and download functionalities are using the official Maven repository.

Demo.applet.deprecated.CoordinatesDemo.py Maven / Gradle / Ivy

Go to download

Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.

There is a newer version: 2.7.4
Show newest version
"""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 - 2024 Weber Informatics LLC | Privacy Policy