First Create a project with these 3 class.
1.game.java
2.RmiClient.java
3.ReceiveMessageInterface.java
/**
* @(#)game.java
*
*
* @author sharma
* @version 1.00 2011/5/5
*/
import java.rmi.*;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.SwingConstants;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Transparency;
import javax.swing.event.*;
import java.sql.*;
import java.util.*;
import java.net.URL;
import javax.imageio.ImageIO;
import java.lang.*;
import java.io.*;
import javax.swing.BoxLayout;
public class game extends JFrame {
RmiClient rm;
JLabel name = new JLabel();
JPanel jPanel1 = new JPanel();
JLabel jLabel4 = new JLabel();
JLabel jLabel5 = new JLabel();
JLabel jLabel6 = new JLabel();
JLabel jLabel7 = new JLabel();
JLabel jLabel8 = new JLabel();
JTextField takip = new JTextField();
JTextField scor = new JTextField();
JButton sig = new JButton();
JButton close = new JButton();
// JButton l[] = new JButton(100);
JButton l1 = new JButton();
JButton l2 = new JButton();
JButton l3 = new JButton();
JButton l4 = new JButton();
JButton l5 = new JButton();
JButton l6 = new JButton();
JButton l7 = new JButton();
JButton l8 = new JButton();
JButton l9 = new JButton();
JButton l10 = new JButton();
JButton l11 = new JButton();
JButton l12 = new JButton();
JButton l13 = new JButton();
JButton l14 = new JButton();
JButton l15 = new JButton();
JButton l16 = new JButton();
JButton l17 = new JButton();
JButton l18 = new JButton();
JButton l19 = new JButton();
JButton l20 = new JButton();
JButton l21 = new JButton();
JButton l22 = new JButton();
JButton l23 = new JButton();
JButton l24 = new JButton();
JButton l25 = new JButton();
JButton l26 = new JButton();
JButton l27 = new JButton();
JButton l28 = new JButton();
JButton l29 = new JButton();
JButton l30 = new JButton();
JButton l31 = new JButton();
JButton l32 = new JButton();
int real = 0;
public game() {
setTitle("Game");
setSize(600,453);
setLocation(220,100);
setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
setVisible(true);
jbinit();
}
void jbinit()
{
this.setResizable(false);
this.getContentPane().setLayout(null);
takip.setText("");
takip.setFont(new java.awt.Font("Dialog", 1, 14));
takip.setBounds(new Rectangle(8, 18,184, 21));
sig.setText("Start");
sig.setBounds(new Rectangle(258, 18,106, 21));
sig.addActionListener(new st_actionAdapter(this));
close.setText("Reset");
close.setBounds(new Rectangle(408, 18,106, 21));
close.addActionListener(new cl_actionAdapter(this));
name.setText("Score :");
name.setFont(new java.awt.Font("Dialog", 1, 14));
name.setBounds(new Rectangle(258, 68,184, 21));
scor.setText("");
scor.setFont(new java.awt.Font("Dialog", 1, 14));
scor.setBounds(new Rectangle(320, 68,184, 21));
l1.setText("a");
l1.setFont(new java.awt.Font("Dialog", 1, 12));
l1.setBounds(new Rectangle(8,48,50,28));
l1.addActionListener(new but_actionAdapter(this));
l2.setText("b");
l2.setFont(new java.awt.Font("Dialog", 1, 12));
l2.setBounds(new Rectangle(58,48,50,28));
l2.addActionListener(new but_actionAdapter(this));
l3.setText("c");
l3.setFont(new java.awt.Font("Dialog", 1, 12));
l3.setBounds(new Rectangle(108,48,50,28));
l3.addActionListener(new but_actionAdapter(this));
l4.setText("d");
l4.setFont(new java.awt.Font("Dialog", 1, 12));
l4.setBounds(new Rectangle(158,48,50,28));
l4.addActionListener(new but_actionAdapter(this));
l5.setText("e");
l5.setFont(new java.awt.Font("Dialog", 1, 12));
l5.setBounds(new Rectangle(8,78,50,28));
l5.addActionListener(new but_actionAdapter(this));
l6.setText("f");
l6.setFont(new java.awt.Font("Dialog", 1, 12));
l6.setBounds(new Rectangle(58,78,50,28));
l6.addActionListener(new but_actionAdapter(this));
l7.setText("g");
l7.setFont(new java.awt.Font("Dialog", 1, 12));
l7.setBounds(new Rectangle(108,78,50,28));
l7.addActionListener(new but_actionAdapter(this));
l8.setText("h");
l8.setFont(new java.awt.Font("Dialog", 1, 12));
l8.setBounds(new Rectangle(158,78,50,28));
l8.addActionListener(new but_actionAdapter(this));
l9.setText("i");
l9.setFont(new java.awt.Font("Dialog", 1, 12));
l9.setBounds(new Rectangle(8,108,50,28));
l9.addActionListener(new but_actionAdapter(this));
l10.setText("j");
l10.setFont(new java.awt.Font("Dialog", 1, 12));
l10.setBounds(new Rectangle(58,108,50,28));
l10.addActionListener(new but_actionAdapter(this));
l11.setText("k");
l11.setFont(new java.awt.Font("Dialog", 1, 12));
l11.setBounds(new Rectangle(108,108,50,28));
l11.addActionListener(new but_actionAdapter(this));
l12.setText("l");
l12.setFont(new java.awt.Font("Dialog", 1, 12));
l12.setBounds(new Rectangle(158,108,50,28));
l12.addActionListener(new but_actionAdapter(this));
l13.setText("m");
l13.setFont(new java.awt.Font("Dialog", 1, 12));
l13.setBounds(new Rectangle(8,138,50,28));
l13.addActionListener(new but_actionAdapter(this));
l14.setText("n");
l14.setFont(new java.awt.Font("Dialog", 1, 12));
l14.setBounds(new Rectangle(58,138,50,28));
l14.addActionListener(new but_actionAdapter(this));
l15.setText("o");
l15.setFont(new java.awt.Font("Dialog", 1, 12));
l15.setBounds(new Rectangle(108,138,50,28));
l15.addActionListener(new but_actionAdapter(this));
l16.setText("p");
l16.setFont(new java.awt.Font("Dialog", 1, 12));
l16.setBounds(new Rectangle(158,138,50,28));
l16.addActionListener(new but_actionAdapter(this));
l17.setText("q");
l17.setFont(new java.awt.Font("Dialog", 1, 12));
l17.setBounds(new Rectangle(8,168,50,28));
l17.addActionListener(new but_actionAdapter(this));
l18.setText("r");
l18.setFont(new java.awt.Font("Dialog", 1, 12));
l18.setBounds(new Rectangle(58,168,50,28));
l18.addActionListener(new but_actionAdapter(this));
l19.setText("s");
l19.setFont(new java.awt.Font("Dialog", 1, 12));
l19.setBounds(new Rectangle(108,168,50,28));
l19.addActionListener(new but_actionAdapter(this));
l20.setText("t");
l20.setFont(new java.awt.Font("Dialog", 1, 12));
l20.setBounds(new Rectangle(158,168,50,28));
l20.addActionListener(new but_actionAdapter(this));
l21.setText("u");
l21.setFont(new java.awt.Font("Dialog", 1, 12));
l21.setBounds(new Rectangle(8,198,50,28));
l21.addActionListener(new but_actionAdapter(this));
l22.setText("v");
l22.setFont(new java.awt.Font("Dialog", 1, 12));
l22.setBounds(new Rectangle(58,198,50,28));
l22.addActionListener(new but_actionAdapter(this));
l23.setText("w");
l23.setFont(new java.awt.Font("Dialog", 1, 12));
l23.setBounds(new Rectangle(108,198,50,28));
l23.addActionListener(new but_actionAdapter(this));
l24.setText("x");
l24.setFont(new java.awt.Font("Dialog", 1, 12));
l24.setBounds(new Rectangle(158,198,50,28));
l24.addActionListener(new but_actionAdapter(this));
l25.setText("y");
l25.setFont(new java.awt.Font("Dialog", 1, 12));
l25.setBounds(new Rectangle(8,228,50,28));
l25.addActionListener(new but_actionAdapter(this));
l26.setText("z");
l26.setFont(new java.awt.Font("Dialog", 1, 12));
l26.setBounds(new Rectangle(58,228,50,28));
l26.addActionListener(new but_actionAdapter(this));
l27.setText("A");
l27.setFont(new java.awt.Font("Dialog", 1, 12));
l27.setBounds(new Rectangle(108,228,50,28));
l27.addActionListener(new but_actionAdapter(this));
l28.setText("B");
l28.setFont(new java.awt.Font("Dialog", 1, 12));
l28.setBounds(new Rectangle(158,228,50,28));
l28.addActionListener(new but_actionAdapter(this));
l29.setText("C");
l29.setFont(new java.awt.Font("Dialog", 1, 12));
l29.setBounds(new Rectangle(8,258,50,28));
l29.addActionListener(new but_actionAdapter(this));
l30.setText("D");
l30.setFont(new java.awt.Font("Dialog", 1, 12));
l30.setBounds(new Rectangle(58,258,50,28));
l30.addActionListener(new but_actionAdapter(this));
l31.setText("E");
l31.setFont(new java.awt.Font("Dialog", 1, 12));
l31.setBounds(new Rectangle(108,258,50,28));
l31.addActionListener(new but_actionAdapter(this));
l32.setText("F");
l32.setFont(new java.awt.Font("Dialog", 1, 12));
l32.setBounds(new Rectangle(158,258,50,28));
l32.addActionListener(new but_actionAdapter(this));
this.getContentPane().add(scor,null);
this.getContentPane().add(name,null);
this.getContentPane().add(takip,null);
this.getContentPane().add(sig,null);
this.getContentPane().add(close,null);
this.getContentPane().add(l1,null);
this.getContentPane().add(l2,null);
this.getContentPane().add(l3,null);
this.getContentPane().add(l4,null);
this.getContentPane().add(l5,null);
this.getContentPane().add(l6,null);
this.getContentPane().add(l7,null);
this.getContentPane().add(l8,null);
this.getContentPane().add(l9,null);
this.getContentPane().add(l10,null);
this.getContentPane().add(l11,null);
this.getContentPane().add(l12,null);
this.getContentPane().add(l13,null);
this.getContentPane().add(l14,null);
this.getContentPane().add(l15,null);
this.getContentPane().add(l16,null);
this.getContentPane().add(l17,null);
this.getContentPane().add(l18,null);
this.getContentPane().add(l19,null);
this.getContentPane().add(l20,null);
this.getContentPane().add(l21,null);
this.getContentPane().add(l22,null);
this.getContentPane().add(l23,null);
this.getContentPane().add(l24,null);
this.getContentPane().add(l25,null);
this.getContentPane().add(l26,null);
this.getContentPane().add(l27,null);
this.getContentPane().add(l28,null);
this.getContentPane().add(l29,null);
this.getContentPane().add(l30,null);
this.getContentPane().add(l31,null);
this.getContentPane().add(l32,null);
}
public static void main (String[] args) {
game gm = new game();
}
void clik_action(ActionEvent e)
{
System.out.println(""+e.getActionCommand());
//rm.all(e.getActionCommand());
String pc="",rp="",mp="",gp="";
int i,j=0,l=0;
char c;
mp += e.getActionCommand();
for(i=97;i<=122;i++)
{
rp = "";
c = (char)i;
rp += c;
l = i - 96;
if(rp.equals(mp))
{
j = 1;
System.out.println(l+" "+rp);
break;
}
}
if(j != 1)
for(i=65;i<=70;i++)
{
rp = "";
c = (char)i;
rp += c;
l = i - 38;
if(rp.equals(mp))
{
System.out.println(l+" "+rp);
break;
}
}
pc = Integer.toString(l);
gp = rm.all(pc);
if(gp.equals(":)"))
{
l1.setText(rm.all("1"));l2.setText(rm.all("2"));l3.setText(rm.all("3"));l4.setText(rm.all("4"));
l5.setText(rm.all("5"));l6.setText(rm.all("6"));l7.setText(rm.all("7"));l8.setText(rm.all("8"));
l9.setText(rm.all("9"));l10.setText(rm.all("10"));l11.setText(rm.all("11"));l12.setText(rm.all("12"));
l13.setText(rm.all("13"));l14.setText(rm.all("14"));l15.setText(rm.all("15"));l16.setText(rm.all("16"));
l17.setText(rm.all("17"));l18.setText(rm.all("18"));l19.setText(rm.all("19"));l20.setText(rm.all("20"));
l21.setText(rm.all("21"));l22.setText(rm.all("22"));l23.setText(rm.all("23"));l24.setText(rm.all("24"));
l25.setText(rm.all("25"));l26.setText(rm.all("26"));l27.setText(rm.all("27"));l28.setText(rm.all("28"));
l29.setText(rm.all("29"));l30.setText(rm.all("30"));l31.setText(rm.all("31"));l32.setText(rm.all("32"));
}
if(l == 1){l1.setBackground(Color.cyan);l1.setText(gp);}if(l == 17){l17.setText(gp);setBackground(Color.cyan);}
if(l == 2){l2.setBackground(Color.cyan);l2.setText(gp);}if(l == 18){l18.setBackground(Color.cyan);l18.setText(gp);}
if(l == 3){l3.setBackground(Color.cyan);l3.setText(gp);}if(l == 19){l19.setText(gp);l19.setBackground(Color.cyan);}
if(l == 4){l4.setBackground(Color.cyan);l4.setText(gp);}if(l == 20){l20.setBackground(Color.cyan);l20.setText(gp);}
if(l == 5){l5.setBackground(Color.cyan);l5.setText(gp);}if(l == 21){l21.setBackground(Color.cyan);l21.setText(gp);}
if(l == 6)l6.setText(gp);if(l == 22)l22.setText(gp);
if(l == 7)l7.setText(gp);if(l == 23)l23.setText(gp);
if(l == 8)l8.setText(gp);if(l == 24)l24.setText(gp);
if(l == 9)l9.setText(gp);if(l == 25)l25.setText(gp);
if(l == 10)l10.setText(gp);if(l == 26)l26.setText(gp);
if(l == 11)l11.setText(gp);if(l == 27)l27.setText(gp);
if(l == 12)l12.setText(gp);if(l == 28)l28.setText(gp);
if(l == 13)l13.setText(gp);if(l == 29)l29.setText(gp);
if(l == 14)l14.setText(gp);if(l == 30)l30.setText(gp);
if(l == 15)l15.setText(gp);if(l == 31)l31.setText(gp);
if(l == 16)l16.setText(gp);if(l == 32)l32.setText(gp);
if(!gp.equals(":)"))
{
int m = Integer.parseInt(gp);
String iq ="";
real += m;
iq = Integer.toString(real);
scor.setText(iq);
}
if(gp.equals(":)"))
{
for(i=1;i<=32;i++)
{
// if()
}
scor.setText("You Lose!");
}
//System.out.println(""+sp);
}
void st_action(ActionEvent e)
{
String st = "";
st = takip.getText();
System.out.println(""+st);
rm = new RmiClient(st);
}
void cl_action(ActionEvent e)
{
try
{
rm.rmiServer.receiveMessage("Connect");
}
catch(RemoteException ee)
{
}
real = 0;
l1.setText("a");l17.setText("q");
l2.setText("b");l18.setText("r");
l3.setText("c");l19.setText("s");
l4.setText("d");l20.setText("t");
l5.setText("e");l21.setText("u");
l6.setText("f");l22.setText("v");
l7.setText("g");l23.setText("w");
l8.setText("h");l24.setText("x");
l9.setText("i");l25.setText("y");
l10.setText("j");l26.setText("z");
l11.setText("k");l27.setText("A");
l12.setText("l");l28.setText("B");
l13.setText("m");l29.setText("C");
l14.setText("n");l30.setText("D");
l15.setText("o");l31.setText("E");
l16.setText("p");l32.setText("F");
scor.setText("");
}
}
class but_actionAdapter implements java.awt.event.ActionListener {
game adaptee;
but_actionAdapter(game adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.clik_action(e);
}
}
class st_actionAdapter implements java.awt.event.ActionListener {
game adaptee;
st_actionAdapter(game adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.st_action(e);
}
}
class cl_actionAdapter implements java.awt.event.ActionListener {
game adaptee;
cl_actionAdapter(game adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cl_action(e);
}
}
***********************************************************************************
import java.rmi.*;
import java.rmi.registry.*;
import java.net.*;
import java.io.*;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.SwingConstants;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Transparency;
import javax.swing.event.*;
import java.sql.*;
import java.util.*;
import java.net.URL;
import javax.imageio.ImageIO;
import java.lang.*;
import javax.swing.BoxLayout;
public class RmiClient
{
ReceiveMessageInterface rmiServer;
Registry registry;
String sp="";
String serverPort="8000";
String line="some thing";
public RmiClient(String serverAddress)
{
try
{
// get the “registry”
registry=LocateRegistry.getRegistry(serverAddress,(new Integer(serverPort)).intValue());
// look up the remote object
rmiServer =(ReceiveMessageInterface)(registry.lookup("rmiServer"));
rmiServer.receiveMessage("Connect");
System.out.println("Connected to :"+serverAddress);
}
catch(RemoteException e){
e.printStackTrace();
}
catch(NotBoundException e){
e.printStackTrace();
}
}
public String all(String gp)
{
try{
// call the remote method
rmiServer.receiveMessage(gp);
sp = rmiServer.sendMessage();
System.out.println("Sending :"+gp);
System.out.println("From Server "+sp);
}
catch(RemoteException e){
e.printStackTrace();
}
return sp;
}
}
***********************************************************************************
import java.rmi.*;
public interface ReceiveMessageInterface extends Remote
{
void receiveMessage(String x) throws RemoteException;
public String sendMessage() throws RemoteException;
}
***********************************************************************************
For server side.....
Create project with 2 java class
1.ReceiveMessageInterface.java
2.RmiServer.java
import java.rmi.*;
public interface ReceiveMessageInterface extends Remote
{
void receiveMessage(String x) throws RemoteException;
public String sendMessage() throws RemoteException;
}
***********************************************************************************
import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;
import java.net.*;
import java.io.*;
import java.util.Random;
public class RmiServer extends java.rmi.server.UnicastRemoteObject implements ReceiveMessageInterface
{
int thisPort,c = 0,p=0;
String thisAddress,st="";
Registry registry; // rmi registry for lookup the remote objects.
char[][] input = new char[100][100];
int[][] val = new int[100][100];
Random generator = new Random();
// This method is called from the remote client by the RMI.
// This is the implementation of the “ReceiveMessageInterface”.
public void receiveMessage(String x) throws RemoteException
{
st = "";
System.out.println(x);
if(x.equals("Connect"))
{
int i,j,k,l=0,mo,r=0,g;
k = 2;
mo = generator.nextInt( 7 );
for(i=0;i<8;i++)
{
++r;
g = mo % r;
System.out.print(""+r);
for(j=0;j<4;j++)
{
if(l == k+g)
{
l = 0;
input[i][j] = '*';
}
else
{
input[i][j] = '.';
}
++l;
}
}
// calculate
int p,xx,yy,v;
int px[] = {-1,-1,-1,0,0,1,1,1};
int py[] = {0,1,-1,-1,1,-1,0,1};
for(i=0;i<8;i++)
{
for(j=0;j<4;j++)
{
if(input[i][j] == '.')
{
v = 0;
for(p=0;p<8;p++)
{
xx = i + px[p];
yy = j + py[p];
if(xx >=0 && xx <= 8 && yy >=0 && yy <= 3)
{
if(input[xx][yy] == '*')
{
++v;
}
}
}
val[i][j] = v;
}
if(input[i][j] == '*')
{
val[i][j] = -1;
}
}
}
}
st += x;
}
public String sendMessage() throws RemoteException
{
int i,j,k;
k = Integer.parseInt(st);
k = k-1;
j = k % 4;
i = k/4;
if(val[i][j] == -1)
{
st = ":)";
}
else
{
st = Integer.toString(val[i][j]);
}
return st;
}
public RmiServer() throws RemoteException
{
try{
// get the address of this host.
thisAddress= (InetAddress.getLocalHost()).toString();
}
catch(Exception e){
throw new RemoteException("can't get inet address.");
}
thisPort=8000; // this port(registry’s port)
System.out.println("this address="+thisAddress+",port="+thisPort);
try{
// create the registry and bind the name and object.
registry = LocateRegistry.createRegistry( thisPort );
registry.rebind("rmiServer", this);
}
catch(RemoteException e){
throw e;
}
}
static public void main(String args[])
{
try
{
RmiServer s=new RmiServer();
}
catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
***********************************************************************************