OK to jeszcze jedno pytanko. Jak zrobić żeby zapisać do Arraylisty te dane w taki sposób żeby były wyświetlane w ten sposób:
Szymon, Karolina
mama, tata
pytam się dlatego, ponieważ piszę aplikację na zajęcia i natrafiłem na problem mianowicie w mojej aplikacji będzie okno w którym po kliknięciu na przycisk dodaj produkt, produkt powinien pojawić się w tabeli w zadaniu zaznaczone jest, że informacje o produktach mają być przechowywane za pomocą kolekcji. I teraz nie wiem jak to zrobić, bo JTable ma konstruktor (Object[][], Object[]). I po utworzeniu nowego produktu(wraz z danymi musiałby on trafić do takiej tablicy Object[][]. Proszę o poradę wskazówkę. To kawałek kod okna z gdzie jest opcja dodaj produkt. Jest to program z wykorzystaniem RMI.
Kod Serwera:
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.UnknownHostException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
public class SerwerRMI extends UnicastRemoteObject implements RMIInterface{
String adres;
int port =1099;
public String[] kolumny={"ID","Nazwa","Producent","Ilosc"};
String[][] dane;
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 static void main(String[] args) throws RemoteException, AlreadyBoundException, UnknownHostException, MalformedURLException{
SerwerRMI serv=new SerwerRMI();
Naming.rebind("rmi://192.168.1.17/RMIInterface", serv);
}
public String[][] zwrocDane() throws RemoteException {
return dane;
}
@Override
public String[] zwrocNazwyKolumn() throws RemoteException {
return kolumny;
}
@Override
public void Dodaj(String id, String nazwa, String producent, String ilosc) {
;
}
}
Kod Okna:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.Registry;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
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 = new JTable();
private JScrollPane suwak;
Registry rejestr;
int port =1099;
String zmienna;
public String[] kolumny;
public String[][] dane;
RMIInterface interfejs;
public OknoAdmina() throws RemoteException, MalformedURLException, NotBoundException {
Remote zdalna = Naming.lookup("rmi://192.168.1.17/RMIInterface");
interfejs =(RMIInterface)zdalna;
kolumny=interfejs.zwrocNazwyKolumn();
dane = interfejs.zwrocDane();
}
@Override
public void actionPerformed(ActionEvent klik) {
if(klik.getSource()==pokaz)
{
suwak.setVisible(true);
}
}
public void pokazOknoAdmina() throws RemoteException
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(600,600);
setTitle("Okno administratora");
setLayout(null);
setVisible(true);
tabela=new JTable(dane,kolumny);
suwak = new JScrollPane(tabela);
pokaz.setSize(150,30);
pokaz.setLocation(30, 50);
pokaz.addActionListener(this);
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));
suwak.setVisible(false);
add(pokaz);
add(dodaj);
add(pokazZamowienia);
add(wyjdz);
add(suwak);
}
}