$label->setLabelFor($button); $pane = new java("javax.swing.Jpanel", new java("javax.swing.GridLayout", 0, 1)); $pane->add(button); $pane->add(label); $BorderFactory = new JavaClass("javax.swing.BorderFactory"); $pane->setBorder($BorderFactory->createEmptyBorder(30, 30, 10, 30)); return $pane; } function createAndShowGUI() { $frame = new java("javax.swing.JFrame", "SwingApplication"); $frame->setDefaultcloseOperation($frame->EXIT_ON_CLOSE); $contents = $this->createComponents(); $contentPane = $frame->getContentPane(); $BorderLayout = new JavaClass("javax.swing.BorderLayout"); $contentPane->add($contents, $BorderLayout->CENTER); $frame->pack(); $frame->setVisible(true); } } class Runnable { function run() { $app = new SwingApplication(); $app->createAndShowGUI(); } } $SwingUtilities = new JavaClass("javax.swing.SwingUtilities"); $SwingUtilities->invokeLater(java_closure(new Runnable(), new JavaClass("java.lang.Runnable")));