| 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) |