组织一个GUI RMI客户端

时间:2012-12-02 12:13:51

标签: java swing

我正在RMI中开发一个带有GUI的安全电话簿。

我的问题与客户端GUI的类结构有关,而不是RMI本身。

基本上,当我点击“连接”按钮时,我的GUI首先打开一个带有登录名/密码的JFrame,如果身份验证没问题,则打开另一个JFrame并显示电话簿的内容。 但我不知道是否需要将所有内容放在与Inner类相同的java文件中,或者使用新的JFrame创建一个新类。这可能是一个选择问题,但我想以正确的方式。 最重要的是,我不知道哪里可以获得电话簿RMI参考

public class ClientGui extends JFrame {
private static final String registryhost= "localhost:1099"; 
private static final long serialVersionUID = 1L;
//Several attributes

public ClientGui() {
    //Creation of components and a Connect Button
}

private class ButtonConnect implements ActionListener { 
    public void actionPerformed(ActionEvent ae)
    {
        try {
            Phonebook phonebook = (Phonebook) Naming.lookup("rmi://"+registryhost+"/Phonebook");
            Customer customerInstance = phonebook.checkCredential(login, password);

            if(customerInstance!=null) {
                CustomerPage page=new CustomerPage();
                page.setVisible(true);
                JLabel label = new JLabel("Welcome");
                page.getContentPane().add(label);
            } 
        } catch (RemoteException e3) {
            //blabla
        }
    }
}

public static void main(String args[])
{
    try
    {
        ClientGui frame=new ClientGui();
        frame.setVisible(true);
    }
    catch(Exception e)
    {JOptionPane.showMessageDialog(null, e.getMessage());}
}

}

如您所见,单击连接按钮时收到电话簿参考。但我不认为这是个好主意,因为新的Jframe也必须使用这个RMI参考。 那么最好的方法是什么?在客户端GUI属性中将RMI属性存储为静态,将新JFrame存储为内部类?或者为新的JFrame创建另一个类,但它需要一个新的

Phonebook phonebook = (Phonebook) Naming.lookup("rmi://"+registryhost+"/Phonebook");

0 个答案:

没有答案