Menu

[r308]: / trunk / php-java-bridge / tests.php4 / swingApplication.php  Maximize  Restore  History

Download this file

51 lines (43 with data), 1.5 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/php
<?php
if(!extension_loaded('java')) {
dl('java.' . PHP_SHLIB_SUFFIX);
}
class SwingApplication {
var $labelPrefix = "Number of button clicks: ";
var $numClicks = 0;
function actionPerformed($e) {
$numClicks++;
$label->setText($labelPrefix . numClicks);
}
function createComponents() {
$button = new java("javax.swing.JButton", "I'm a Swing button!");
$button->addActionListener(java_closure($this, new JavaClass("java.awt.event.ActionListener")));
$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")));
?>