зеркало из https://github.com/mozilla/gecko-dev.git
Using explicit JavaImporter constructor to make namespace for swing and using it later with the "with" statement to get access to Java classes.
In this way the example can be used in an application that does not use ImporterTopLevel.
This commit is contained in:
Родитель
c23fd4c1e9
Коммит
98d50120c7
|
@ -5,11 +5,15 @@
|
|||
* @author Roger E Critchlow, Jr.
|
||||
*/
|
||||
|
||||
importPackage(Packages.javax.swing);
|
||||
importPackage(Packages.java.awt);
|
||||
importPackage(Packages.java.awt.event);
|
||||
var swingNames = JavaImporter();
|
||||
|
||||
function createComponents() {
|
||||
swingNames.importPackage(Packages.javax.swing);
|
||||
swingNames.importPackage(Packages.java.awt);
|
||||
swingNames.importPackage(Packages.java.awt.event);
|
||||
|
||||
function createComponents()
|
||||
{
|
||||
with (swingNames) {
|
||||
var labelPrefix = "Number of button clicks: ";
|
||||
var numClicks = 0;
|
||||
var label = new JLabel(labelPrefix + numClicks);
|
||||
|
@ -42,13 +46,16 @@ function createComponents() {
|
|||
|
||||
return pane;
|
||||
}
|
||||
}
|
||||
|
||||
with (swingNames) {
|
||||
try {
|
||||
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
|
||||
UIManager.
|
||||
setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
|
||||
} catch (e) { }
|
||||
|
||||
//Create the top-level container and add contents to it.
|
||||
var frame = new JFrame("SwingApplication");
|
||||
var frame = new swingNames.JFrame("SwingApplication");
|
||||
frame.getContentPane().add(createComponents(), BorderLayout.CENTER);
|
||||
|
||||
// Pass JS function as implementation of WindowListener. It is allowed since
|
||||
|
@ -56,7 +63,6 @@ frame.getContentPane().add(createComponents(), BorderLayout.CENTER);
|
|||
// between methods Rhino passes to JS function the name of corresponding
|
||||
// method as the last argument
|
||||
frame.addWindowListener(function(event, methodName) {
|
||||
print(event + " "+methodName);
|
||||
if (methodName == "windowClosing") {
|
||||
java.lang.System.exit(0);
|
||||
}
|
||||
|
@ -65,6 +71,7 @@ print(event + " "+methodName);
|
|||
//Finish setting up the frame, and show it.
|
||||
frame.pack();
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче