import javax.swing.*;          
import java.awt.*;
import java.awt.event.*;
import java.rmi.registry.*;

public class HelloFrame {

    private static String labelPrefix = "nada";

    private static HelloWorld stub = null; 

    public Component createComponents() {
        final JLabel label = new JLabel("nada");

        JButton button = new JButton("Ola´!");
        button.setMnemonic(KeyEvent.VK_I);
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
        	try { 
                    label.setText(stub.hello());
        	} catch (Exception ex) { 
        	    System.out.println("Hello exception: " + ex.getMessage()); 
        	}
            }
        });
        label.setLabelFor(button);

        JPanel pane = new JPanel();
        pane.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
        pane.setLayout(new GridLayout(0, 1));
        pane.add(button);
        pane.add(label);

        return pane;
    }

    public static void main(String[] args) {

        JFrame frame = new JFrame("Hello");
        HelloFrame app = new HelloFrame();

        Component contents = app.createComponents();
        frame.getContentPane().add(contents, BorderLayout.CENTER);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);

        try { 
         // Obtém uma referência para o registro do RMI
         Registry registry = LocateRegistry.getRegistry();
	 // Obtém a stub do servidor
         stub = (HelloWorld) registry.lookup("Hello");
        } catch (Exception e) { 
            System.out.println("Hello exception: " + e.getMessage()); 
        } 

   }
}

