⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registryexplorerframe.java

📁 本书是一本为Java学习者在基础内容学习结束后进行课程设计时提供参考的指导书
💻 JAVA
字号:
package apibook.c8.s3;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.rmi.*;//测试类rmi.registry包public class RegistryExplorerFrame extends JFrame {  JPanel contentPane;  BorderLayout borderLayout1 = new BorderLayout();  private JTextArea _resultsArea;  private JTextField _portTextField;  private JButton _queryRegistryButton;  //Construct the frame  public RegistryExplorerFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    contentPane.setLayout(borderLayout1);    this.setSize(new Dimension(400, 300));    this.setTitle("RegistryExplorer");    buildGUI();    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);  }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }//初始化图形界面  private void buildGUI() {      JPanel mainPanel = new JPanel(new BorderLayout());      _resultsArea = new JTextArea();      mainPanel.add(new JScrollPane(_resultsArea), BorderLayout.CENTER);      _queryRegistryButton = new JButton("Check Registry Contents");      _queryRegistryButton.addActionListener(new QueryRegistry());      mainPanel.add(_queryRegistryButton, BorderLayout.SOUTH);      getContentPane().add(mainPanel);      setSize(250, 200);  }  private void displayInformationForName(String name) throws Exception {      Object value = Naming.lookup(name);//查找远程对象      if (null == value) {          _resultsArea.append("Server named " + name + " is not in registry\n");          return;      }      //获取接口      Collection interfaces = getRemoteInterfacesForObject(value);      if (null == interfaces) {          _resultsArea.append("Object named " + name + " is not a server\n");          return;      }      _resultsArea.append("Server named " + name + " implements the following remote interfaces\n");      Iterator i = interfaces.iterator();      while (i.hasNext()) {//输出结果          _resultsArea.append("\t" + i.next() + "\n");      }      return;  }//查找对象的接口  private Collection getRemoteInterfacesForObject(Object object) {      Class objectType = object.getClass();      Class[] interfaces = objectType.getInterfaces();      Class remoteInterface = Remote.class;      if ((null == interfaces) || (0 == interfaces.length)) {          return null;      }      ArrayList returnValue = new ArrayList();      int counter;      for (counter = 0; counter < interfaces.length; counter++) {          if (remoteInterface.isAssignableFrom(interfaces[counter])) {              returnValue.add(interfaces[counter]);          }      }      return returnValue;  }//查询注册表  private class QueryRegistry implements ActionListener {      public void actionPerformed(ActionEvent event) {          try {              String[] names = Naming.list("//localhost:1099");//注册表列表              if ((null == names) || (0 == names.length)) {                  _resultsArea.setText("The Registry is Empty");                  return;              }              _resultsArea.setText("");              int counter;              for (counter = 0; counter < names.length; counter++) {                  displayInformationForName(names[counter]);//显示              }          } catch (Exception exception) {              System.out.println(exception);              exception.printStackTrace();          }      }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -