Ehh z poziomu eclipsa dalej mi nie działa :-( i niestety coś tam z konsola działa. Ok próbuje przejść do następnego etapu mojego programu będzie się on składał z kilku okienek OknoKlienta, OknoAdministratora, OknoDodawania, OknoLogowania, OknoDodawaniaKonta. I trafiłem na następny problem OknoLogowania działa dobrze a OknoAdministratora już nie bardzo. Chodzi o to że pokazuje stare dane w tabeli :-( OknoAdministratora działa dobrze dopiero jak utworze nowy obiekt klasy OknoAdministratora w ClientRMI. W SerwerRMI jest dwuwymiarowa tablica i tam gdzie jest "zzzzz" pokazuje mi starą wartość "Gruszka" Proszę o pomoc.
Klasa ClientRMI:
import java.net.UnknownHostException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class ClientRMI {
public static void main(String[] args)throws RemoteException,
java.net.MalformedURLException, java.rmi.NotBoundException, UnknownHostException {
Registry rejestr;
int port =1099;
String adres=("192.168.1.17");
RMIInterface zmienna;
rejestr=LocateRegistry.getRegistry(adres,port);
zmienna = (RMIInterface)(rejestr.lookup("RMIInterface"));
OknoLogowania okno1 = new OknoLogowania();
//OknoAdmina ad = new OknoAdmina();
//ad.pokazOknoAdmina();
}
}
Klasa SerwerRMI:
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class SerwerRMI extends UnicastRemoteObject implements RMIInterface{
String adres;
int port =1099;
public String[] kolumny={"ID","Nazwa","Producent","Ilosc"};
public Object[][] dane = {
{"1","Duszki","Hogath",new Integer(4)},
{"2","ZZZZZ","Dumbli",new Integer(6)},
};
public SerwerRMI() throws RemoteException, UnknownHostException{
super();
String nazwa="RMIInterface";
adres=(InetAddress.getLocalHost()).toString();
System.out.println("this address="+adres+",port="+port);
Registry rejestr = LocateRegistry.createRegistry(port);
rejestr.rebind(nazwa, this);
}
public Object[][] zwrocDane()throws RemoteException {
return dane;
}
public String[] zwrocKolumny()throws RemoteException {
return kolumny;
}
public static void main(String[] args) throws RemoteException, AlreadyBoundException, UnknownHostException{
SerwerRMI serv=new SerwerRMI();
}
}
Klasa OknoAdmina:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class OknoAdmina extends JFrame implements ActionListener{
private JButton pokaz=new JButton("Pokaz produkty");
private JButton dodaj=new JButton("Dodaj");
private JButton pokazZamowienia=new JButton("Pokaż zamówienia");
private JButton wyjdz=new JButton("Wyjdz z programu");
private JTable tabela;
private JScrollPane suwak;
public OknoAdmina() throws RemoteException, NotBoundException{
Registry rejestr;
int port =1099;
String adres=("192.168.1.17");
RMIInterface zmienna;
rejestr=LocateRegistry.getRegistry(adres,port);
zmienna = (RMIInterface)(rejestr.lookup("RMIInterface"));
tabela=new JTable(zmienna.zwrocDane(),zmienna.zwrocKolumny());
suwak = new JScrollPane(tabela);
}
@Override
public void actionPerformed(ActionEvent zdarzenie) {
String nazwa = zdarzenie.getActionCommand();
if (nazwa=="Dodaj") new OknoDodawania();
else if(nazwa=="Wyjdz z programu") System.exit(1);
}
public void pokazOknoAdmina()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(600,600);
setTitle("Okno administratora");
setLayout(null);
setVisible(true);
pokaz.setSize(150,30);
pokaz.setLocation(30, 50);
dodaj.setSize(150, 30);
dodaj.setLocation(30,100);
dodaj.addActionListener(this);
wyjdz.setSize(150, 30);
wyjdz.setLocation(30,200);
wyjdz.addActionListener(this);
pokazZamowienia.setSize(150,30);
pokazZamowienia.setLocation(30,150);
suwak.setSize(300, 400);
suwak.setLocation(230, 50);
tabela.setBackground(new Color(0,252,255));
add(pokaz);
add(dodaj);
add(pokazZamowienia);
add(wyjdz);
add(suwak);
}
}