Java: RMI调用实例2
来源:互联网 发布:mac photoshop cc 破解 编辑:程序博客网 时间:2024/05/29 14:07
服务端的接口
服务端实现
客户端实现
服务接口
服务
服务2
package practice;
import java.rmi.*;
public interface ServiceServer extends Remote {
Object[] getServiceList() throws RemoteException;
Service getService(Object serviceKey) throws RemoteException;
}
import java.rmi.*;
public interface ServiceServer extends Remote {
Object[] getServiceList() throws RemoteException;
Service getService(Object serviceKey) throws RemoteException;
}
服务端实现
package practice;
import java.util.*;
import java.rmi.*;
import java.rmi.server.*;
public class ServiceServerImpl extends UnicastRemoteObject implements ServiceServer{
private static final long serialVersionUID = -4807659989722643845L;
HashMap<String, Object> serviceList;
public ServiceServerImpl() throws RemoteException{
setUpServices();
}
private void setUpServices(){
serviceList = new HashMap<String, Object>();
serviceList.put("Dice Rolling Service", new DiceService());
serviceList.put("Day of week service", new DayOfWeekService());
//serviceList.put("Visual Music Service", new MiniMusicService());
}
public Service getService(Object key) throws RemoteException{
return (Service)serviceList.get(key);
}
public Object[] getServiceList() throws RemoteException{
return serviceList.keySet().toArray();
}
public static void main(String[] args){
try{
ServiceServerImpl server = new ServiceServerImpl();
Naming.rebind("ServiceServerX", server);
}catch(Exception e){
e.printStackTrace();
}
}
}
import java.util.*;
import java.rmi.*;
import java.rmi.server.*;
public class ServiceServerImpl extends UnicastRemoteObject implements ServiceServer{
private static final long serialVersionUID = -4807659989722643845L;
HashMap<String, Object> serviceList;
public ServiceServerImpl() throws RemoteException{
setUpServices();
}
private void setUpServices(){
serviceList = new HashMap<String, Object>();
serviceList.put("Dice Rolling Service", new DiceService());
serviceList.put("Day of week service", new DayOfWeekService());
//serviceList.put("Visual Music Service", new MiniMusicService());
}
public Service getService(Object key) throws RemoteException{
return (Service)serviceList.get(key);
}
public Object[] getServiceList() throws RemoteException{
return serviceList.keySet().toArray();
}
public static void main(String[] args){
try{
ServiceServerImpl server = new ServiceServerImpl();
Naming.rebind("ServiceServerX", server);
}catch(Exception e){
e.printStackTrace();
}
}
}
客户端实现
package practice;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.rmi.*;
public class ServiceBrowser {
JPanel panel;
ServiceServer server;
JComboBox serviceList;
public static void main(String[] args){
new ServiceBrowser().go();
}
private void go(){
buildGUI();
}
private void buildGUI(){
JFrame frame = new JFrame("RMI Browser");
panel = new JPanel();
Object[] services = getServiceList();
serviceList = new JComboBox(services);
serviceList.addActionListener(new ChooseActionListener());
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.getContentPane().add(BorderLayout.NORTH, serviceList);
frame.setSize(400, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private Object[] getServiceList(){
Object[] serviceList = null;
try{
server = (ServiceServer)Naming.lookup("ServiceServerX");
serviceList = server.getServiceList();
}catch(Exception e){
e.printStackTrace();
}
return serviceList;
}
class ChooseActionListener implements ActionListener{
public void actionPerformed(ActionEvent evetn){
loadService(serviceList.getSelectedItem());
}
}
private void loadService(Object selection){
try{
Service service = server.getService(selection);
panel.removeAll();
panel.add(service.getGuiPanel());
panel.validate();
panel.repaint();
}catch(Exception e){
e.printStackTrace();
}
}
}
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.rmi.*;
public class ServiceBrowser {
JPanel panel;
ServiceServer server;
JComboBox serviceList;
public static void main(String[] args){
new ServiceBrowser().go();
}
private void go(){
buildGUI();
}
private void buildGUI(){
JFrame frame = new JFrame("RMI Browser");
panel = new JPanel();
Object[] services = getServiceList();
serviceList = new JComboBox(services);
serviceList.addActionListener(new ChooseActionListener());
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.getContentPane().add(BorderLayout.NORTH, serviceList);
frame.setSize(400, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private Object[] getServiceList(){
Object[] serviceList = null;
try{
server = (ServiceServer)Naming.lookup("ServiceServerX");
serviceList = server.getServiceList();
}catch(Exception e){
e.printStackTrace();
}
return serviceList;
}
class ChooseActionListener implements ActionListener{
public void actionPerformed(ActionEvent evetn){
loadService(serviceList.getSelectedItem());
}
}
private void loadService(Object selection){
try{
Service service = server.getService(selection);
panel.removeAll();
panel.add(service.getGuiPanel());
panel.validate();
panel.repaint();
}catch(Exception e){
e.printStackTrace();
}
}
}
服务接口
package practice;
import javax.swing.*;
import java.io.*;
public interface Service extends Serializable{
public JPanel getGuiPanel();
}
import javax.swing.*;
import java.io.*;
public interface Service extends Serializable{
public JPanel getGuiPanel();
}
服务
package practice;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DiceService implements Service{
private static final long serialVersionUID = 9088576826000018846L;
JLabel result;
JComboBox diceNum;
public JPanel getGuiPanel(){
JPanel panel = new JPanel();
String[] choice = {"1", "2", "3", "4", "5"};
diceNum = new JComboBox(choice);
JButton startButton = new JButton("Start Roll");
startButton.addActionListener(new CreateDiceActionListener());
result = new JLabel("Please Click Start Roll");
panel.add(diceNum);
panel.add(startButton);
panel.add(result);
return panel;
}
class CreateDiceActionListener implements ActionListener{
public void actionPerformed(ActionEvent event){
result.setText(getRandomNum(diceNum.getSelectedItem()));
}
}
private String getRandomNum(Object Num){
try{
int diceNum = Integer.parseInt((String)Num);
String result = "";
for(int i=0 ;i<diceNum; i++){
result += (int)(Math.random()*6) + " ";
}
return result;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DiceService implements Service{
private static final long serialVersionUID = 9088576826000018846L;
JLabel result;
JComboBox diceNum;
public JPanel getGuiPanel(){
JPanel panel = new JPanel();
String[] choice = {"1", "2", "3", "4", "5"};
diceNum = new JComboBox(choice);
JButton startButton = new JButton("Start Roll");
startButton.addActionListener(new CreateDiceActionListener());
result = new JLabel("Please Click Start Roll");
panel.add(diceNum);
panel.add(startButton);
panel.add(result);
return panel;
}
class CreateDiceActionListener implements ActionListener{
public void actionPerformed(ActionEvent event){
result.setText(getRandomNum(diceNum.getSelectedItem()));
}
}
private String getRandomNum(Object Num){
try{
int diceNum = Integer.parseInt((String)Num);
String result = "";
for(int i=0 ;i<diceNum; i++){
result += (int)(Math.random()*6) + " ";
}
return result;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}
服务2
package practice;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class DayOfWeekService implements Service{
JLabel result;
JComboBox year;
JComboBox month;
JComboBox day;
public JPanel getGuiPanel(){
JPanel panel = new JPanel();
JPanel innerPanel = new JPanel(new GridLayout(3,2));
year = new JComboBox(getArray(1950,2007));
month = new JComboBox(getArray(1,12));
day = new JComboBox(getArray(1,31));
innerPanel.add(new JLabel("Year"));
innerPanel.add(year);
innerPanel.add(new JLabel("Month"));
innerPanel.add(month);
innerPanel.add(new JLabel("Day"));
innerPanel.add(day);
JButton startButton = new JButton("Start Compute");
startButton.addActionListener(new ComputeWeekActionListener());
result = new JLabel();
panel.add(innerPanel);
panel.add(startButton);
panel.add(result);
return panel;
}
class ComputeWeekActionListener implements ActionListener{
public void actionPerformed(ActionEvent event){
result.setText(getWeek());
}
}
private Object[] getArray(int start, int stop){
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=start;i<=stop;i++){
list.add(i);
}
return list.toArray();
}
private String getWeek(){
try{
int y = getSelectedInt(year);
int m = getSelectedInt(month);
int d = getSelectedInt(day);
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.set(Calendar.MONTH, m-1);
c.set(Calendar.DAY_OF_MONTH, d);
c.set(Calendar.YEAR, y);
Date date = c.getTime();
return (new SimpleDateFormat("EEEE")).format(date);
}catch(Exception e){
e.printStackTrace();
}
return null;
}
private int getSelectedInt(JComboBox in){
return (Integer)in.getSelectedItem();
}
}
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class DayOfWeekService implements Service{
JLabel result;
JComboBox year;
JComboBox month;
JComboBox day;
public JPanel getGuiPanel(){
JPanel panel = new JPanel();
JPanel innerPanel = new JPanel(new GridLayout(3,2));
year = new JComboBox(getArray(1950,2007));
month = new JComboBox(getArray(1,12));
day = new JComboBox(getArray(1,31));
innerPanel.add(new JLabel("Year"));
innerPanel.add(year);
innerPanel.add(new JLabel("Month"));
innerPanel.add(month);
innerPanel.add(new JLabel("Day"));
innerPanel.add(day);
JButton startButton = new JButton("Start Compute");
startButton.addActionListener(new ComputeWeekActionListener());
result = new JLabel();
panel.add(innerPanel);
panel.add(startButton);
panel.add(result);
return panel;
}
class ComputeWeekActionListener implements ActionListener{
public void actionPerformed(ActionEvent event){
result.setText(getWeek());
}
}
private Object[] getArray(int start, int stop){
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=start;i<=stop;i++){
list.add(i);
}
return list.toArray();
}
private String getWeek(){
try{
int y = getSelectedInt(year);
int m = getSelectedInt(month);
int d = getSelectedInt(day);
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.set(Calendar.MONTH, m-1);
c.set(Calendar.DAY_OF_MONTH, d);
c.set(Calendar.YEAR, y);
Date date = c.getTime();
return (new SimpleDateFormat("EEEE")).format(date);
}catch(Exception e){
e.printStackTrace();
}
return null;
}
private int getSelectedInt(JComboBox in){
return (Integer)in.getSelectedItem();
}
}
- Java: RMI调用实例2
- Java: RMI调用实例
- Java RMI调用实例
- JAVA RMI远程方法调用简单实例
- JAVA RMI 远程方法调用简单实例
- java远程调用rmi入门实例
- JAVA RMI远程方法调用简单实例
- JAVA RMI远程方法调用简单实例
- JAVA RMI远程方法调用简单实例
- JAVA RMI远程方法调用简单实例
- JAVA RMI远程方法调用简单实例
- JAVA RMI远程方法调用简单实例
- Java 远程调用RMI 简单实例之一
- JAVA RMI远程方法调用简单实例
- RMI远程调用实例
- java RMI(java远程方法调用实例解析)
- 学习笔记:JAVA RMI远程方法调用简单实例
- 学习笔记:JAVA RMI远程方法调用简单实例
- 随笔
- 第2课:OpenGL几何图原——点
- MFC/WIWIndows常用API--3
- 正则表达式
- 常用正则表达式
- Java: RMI调用实例2
- 多核编程的几个难题及其应对策略(难题一)
- 这支烟灭了以后
- 批量装载XML文件到SQL SERVER 2K
- 第3课:OpenGL几何图原——线
- 如何导入 SQLServer XML 与 XML 批量加载组件
- 快速排序的两种实现
- 谢文的离职代表着雅虎中国的没落?
- 日志Apr10th2007