"Programming Languages for the JVM"
Volume: 5 Issue: 2, p.86

Listing 1:

import javax.swing.*;
import java.awt.Font;
import java.awt.event.*;

class MyFrame extends JFrame{
 public MyFrame(){
  JButton sayHello;
  sayHello = new JButton("say hello");
  sayHello.setMnemonic('h');
  this.getContentPane().add(sayHello);
  this.setVisible(true);
  this.pack();

  sayHello.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae){
    JButton b = (JButton)ae.getSource();
    b.setEnabled(false);
    sayHello();
   }
  });
 }
 private void sayHello(){
  JFrame helloFrame;
  JLabel helloLabel;
  Font font;
  helloFrame = new JFrame("Hello Frame");
  helloLabel= new JLabel("Hello World");
  font = new Font("Arial", Font.BOLD, 20);
  helloLabel.setFont(font);
  helloFrame.getContentPane().add(helloLabel);
  helloFrame.pack();
  helloFrame.setVisible(true);
 }
 public static void main(String [] args){
  MyFrame frame = new MyFrame();
  frame.setTitle("My Frame");
 }
}

Listing 2:

function MyFrame(){
 sayHello = new Packages.javax.swing.JButton("say hello");
 
 sayHello.setMnemonic('h');
 this.frame = new Packages.javax.swing.JFrame();

 this.frame.getContentPane().add(sayHello);
 this.frame.setVisible(true);
 this.frame.pack();
 
 sayHello.addActionListener( new Packages.java.awt.event.ActionListener() {
  __parent__ : this,
  actionPerformed : function(ae) {
ae.getSource().setEnabled(false);
   this.__parent__.sayHello();
  }
 });
 
 function sayHello(){
  helloFrame = new Packages.javax.swing.JFrame("Hello Frame");
  helloLabel= new Packages.javax.swing.JLabel("Hello World");
  font = new java.awt.Font("Arial", java.awt.Font.BOLD, 20);
  helloLabel.setFont(font);
  helloFrame.getContentPane().add(helloLabel);
  helloFrame.pack();
  helloFrame.setVisible(true);
 }
 
 this.sayHello=sayHello;
}

function main(){
 frame = new MyFrame();
 frame.frame.setTitle("My Hello");
}
main();

Listing 3:

from javax.swing import JFrame, JButton, JLabel
from java.awt import Font

class MyFrame (JFrame):
 def __init__(self):
  sayHello = JButton("say hello", mnemonic=ord('h'))
  self.contentPane.add(sayHello)
  self.visible=1
  self.pack()
  sayHello.actionPerformed = self.__sayHello

 def __sayHello(self, ae):
  ae.source.enabled=0
  helloFrame = JFrame("Hello Frame")
  helloLabel= JLabel("Hello World", font=Font("Arial",
                   Font.BOLD, 20))
  helloFrame.contentPane.add(helloLabel)
  helloFrame.pack()
  helloFrame.visible=1

if __name__=="__main__":
  frame = MyFrame()
  frame.title="My Frame"