36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
|
import sys
|
||
|
from java import awt
|
||
|
|
||
|
def test(panel, size=None, name='AWT Tester'):
|
||
|
f = awt.Frame(name, windowClosing=lambda event: sys.exit(0))
|
||
|
if hasattr(panel, 'init'):
|
||
|
panel.init()
|
||
|
|
||
|
f.add('Center', panel)
|
||
|
f.pack()
|
||
|
if size is not None:
|
||
|
f.setSize(apply(awt.Dimension, size))
|
||
|
f.setVisible(1)
|
||
|
return f
|
||
|
|
||
|
class GridBag:
|
||
|
def __init__(self, frame, **defaults):
|
||
|
self.frame = frame
|
||
|
self.gridbag = awt.GridBagLayout()
|
||
|
self.defaults = defaults
|
||
|
frame.setLayout(self.gridbag)
|
||
|
|
||
|
def addRow(self, widget, **kw):
|
||
|
kw['gridwidth'] = 'REMAINDER'
|
||
|
apply(self.add, (widget, ), kw)
|
||
|
|
||
|
def add(self, widget, **kw):
|
||
|
constraints = awt.GridBagConstraints()
|
||
|
|
||
|
for key, value in self.defaults.items()+kw.items():
|
||
|
if isinstance(value, type('')):
|
||
|
value = getattr(awt.GridBagConstraints, value)
|
||
|
setattr(constraints, key, value)
|
||
|
self.gridbag.setConstraints(widget, constraints)
|
||
|
self.frame.add(widget)
|