2013-03-04 22 views
0

我有一个学生客户端创建一个RMI服务器,像这样学生GUI与RMI服务器

名称----地址的程序-------类组
汤姆-----低街-----网络2
玛丽----高街----第2场
约翰----中街 - 网页2

,我有哪些使用3 GUI标题,但我想让gui在运行时自动更新,而不是通过点击一个按钮来显示更新的信息,而不是在此之后显示的信息。

它只是图形用户界面我坚持我无法找到如何填充图形用户界面这个信息刚刚服务器和客户端运行后,然后当图形用户界面运行。

到目前为止,我已经试过做了几件不同的事情,没有运气。

这是GUI代码

import java.awt.event.*; 

import javax.swing.*; 
import java.awt.GridLayout; 

public class StudentGui extends JFrame 
{ 
    private JTextField NameLabel= new JTextField("Name"); 
    private JTextField AddressLabel= new JTextField("Address"); 
    private JTextField GroupLabel= new JTextField("Group"); 
    private JTextField FirstName= new JTextField(" "); 
    private JTextField SecondName= new JTextField(" "); 
    private JTextField ThirdName= new JTextField(" "); 
    private JTextField FirstAddress= new JTextField(" "); 
    private JTextField SecondAddress= new JTextField(" "); 
    private JTextField ThirdAddress= new JTextField(" "); 
    private JTextField FirstGroup= new JTextField(" "); 
    private JTextField SecondGroup= new JTextField(" "); 
    private JTextField ThirdGroup= new JTextField(" "); 

    StudentGui(String s){ 
     super(s); 

      getContentPane().setLayout(new GridLayout(4,3)); 
      getContentPane().add(NameLabel); 
      getContentPane().add(AddressLabel); 
      getContentPane().add(GroupLabel); 
      getContentPane().add(FirstName); 
      getContentPane().add(FirstAddress); 
      getContentPane().add(FirstGroup); 
      getContentPane().add(SecondName); 
      getContentPane().add(SecondAddress); 
      getContentPane().add(SecondGroup); 
      getContentPane().add(ThirdName); 
      getContentPane().add(ThirdAddress); 
      getContentPane().add(ThirdGroup); 

      setSize(350,150); 
      setVisible(true); 

    } 
     public static void main(String[] args){ 
     new StudentGui("RMI GUI Client"); 
     } 
} 

StudentClient代码

import java.rmi.*; 

public class StudentClient 
{ 
    public static void main(String args[]){ 
     String url = "rmi:///"; 

     try{ 
      StudentInterface aTom=(StudentInterface)Naming.lookup(url+"Tom"); 
      StudentInterface aMary=(StudentInterface)Naming.lookup(url+"Mary"); 
      StudentInterface aJohn=(StudentInterface)Naming.lookup(url+"John"); 

      System.out.println("Name Address  Class Group"); 
      System.out.println(aTom.getName()+" "+aTom.getAddress()+" "+aTom.getGroup()); 
      System.out.println(aMary.getName()+" "+aMary.getAddress()+" "+aMary.getGroup()); 
      System.out.println(aJohn.getName()+" "+aJohn.getAddress()+" "+aJohn.getGroup()); 

      System.out.println("\n" + "Changed too:" + "\n"); 

      aTom.setAddress("Lower Street"); 
      aMary.setAddress("Higher Street"); 
      aMary.setGroup("Game 3"); 
      aJohn.setGroup("Web 3"); 

      System.out.println("Name Address  Class Group"); 
      System.out.println(aTom.getName()+" "+aTom.getAddress()+" "+aTom.getGroup()); 
      System.out.println(aMary.getName()+" "+aMary.getAddress()+" "+aMary.getGroup()); 
      System.out.println(aJohn.getName()+" "+aJohn.getAddress()+" "+aJohn.getGroup()); 

     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

如果你需要的代码的其余部分可以提供。 我不想为我做这件事,只是一个指向我将如何去用这些信息填充GUI的指针。

谢谢您提前。

回答

0

万一没有人做这样的事是怎么计算出来到底是很容易:)

Java代码:

import java.awt.event.*; 

import javax.swing.*; 
import java.awt.GridLayout; 
import java.rmi.Naming; 

public class StudentGui extends JFrame 
{ 
    private JTextField NameLabel= new JTextField("Name"); 
    private JTextField AddressLabel= new JTextField("Address"); 
    private JTextField GroupLabel= new JTextField("Group"); 
    private JTextField FirstName= new JTextField(""); 
    private JTextField SecondName= new JTextField(""); 
    private JTextField ThirdName= new JTextField(""); 
    private JTextField FirstAddress= new JTextField(""); 
    private JTextField SecondAddress= new JTextField(""); 
    private JTextField ThirdAddress= new JTextField(""); 
    private JTextField FirstGroup= new JTextField(""); 
    private JTextField SecondGroup= new JTextField(""); 
    private JTextField ThirdGroup= new JTextField(""); 

    String url = "rmi:///"; 

    StudentGui(String s){ 
     super(s); 

      getContentPane().setLayout(new GridLayout(4,3)); 
      getContentPane().add(NameLabel); 
      getContentPane().add(AddressLabel); 
      getContentPane().add(GroupLabel); 
      getContentPane().add(FirstName); 
      getContentPane().add(FirstAddress); 
      getContentPane().add(FirstGroup); 
      getContentPane().add(SecondName); 
      getContentPane().add(SecondAddress); 
      getContentPane().add(SecondGroup); 
      getContentPane().add(ThirdName); 
      getContentPane().add(ThirdAddress); 
      getContentPane().add(ThirdGroup); 

      setSize(350,150); 
      setVisible(true);  

      try{ 
       StudentInterface aTom=(StudentInterface)Naming.lookup(url+"Tom"); 
       FirstName.setText(aTom.getName()); 
       FirstAddress.setText(aTom.getAddress()); 
       FirstGroup.setText(aTom.getGroup()); 
       StudentInterface aMary=(StudentInterface)Naming.lookup(url+"Mary"); 
       SecondName.setText(aMary.getName()); 
       SecondAddress.setText(aMary.getAddress()); 
       SecondGroup.setText(aMary.getGroup()); 
       StudentInterface aJohn=(StudentInterface)Naming.lookup(url+"John"); 
       ThirdName.setText(aJohn.getName()); 
       ThirdAddress.setText(aJohn.getAddress()); 
       ThirdGroup.setText(aJohn.getGroup()); 
      }catch(Exception a){ 
       a.printStackTrace(); 
      } 
    } 
     public static void main(String[] args){ 
     new StudentGui("RMI GUI Client"); 
     } 
}