def run(self): frame = JFrame('ComponentEventDemo', locationRelativeTo=None, defaultCloseOperation=JFrame.EXIT_ON_CLOSE) cp = frame.getContentPane() cp.setLayout(BorderLayout()) self.display = JTextArea(editable=0, font=Font('Courier', Font.PLAIN, 12)) myListener = listener(self.display) frame.addComponentListener(myListener) scrollPane = JScrollPane(self.display, preferredSize=Dimension(350, 210)) cp.add(scrollPane, BorderLayout.CENTER) panel = JPanel(BorderLayout(), componentListener=myListener) self.button = JButton('Clear', actionPerformed=self.clear, componentListener=myListener) panel.add(self.button, BorderLayout.CENTER) visible = JCheckBox('Button visible', selected=1, itemStateChanged=self.showHide, componentListener=myListener) panel.add(visible, BorderLayout.PAGE_END) cp.add(panel, BorderLayout.PAGE_END) frame.pack() frame.setVisible(1)