Announcement

Collapse
No announcement yet.

ActionEvent via RMI

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ActionEvent via RMI

    Hi,
    ich versuche ein JPanel via RMI zu übertragen (bitte nicht fragen warum. Das hat schon seine Gründe )

    Was ich dabei festgestellt habe, ist dass die ActionListener bei JButtons nicht funktionieren.
    Weiß jemand, ob das prinzipiell bei Java nicht geht, oder ob ich einen Fehler gemacht habe?

    Hier mal ein kleines Code-Beispiel:

    RMI-Server:
    Code:
    public class ServerClass extends UnicastRemoteObject implements Server {
    	private static final long	serialVersionUID	= 1L;
    
    	protected ServerClass() throws RemoteException {
    		super();
    	}
    
    	public static void main(String[] args) throws Exception{
    		LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
    		Naming.rebind("Server", new ServerClass());
    	}
    
    	@Override
    	public JPanel method() throws RemoteException {
    		return new TestPanel();
    	}
    }
    Hier der Client:
    Code:
    public class Client extends JFrame {
    
    	private JPanel	contentPane;
    
    	/**
    	 * Create the frame.
    	 */
    	public Client() throws Exception{
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 450, 300);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(new BorderLayout(0, 0));
    		setContentPane(contentPane);
    		
    		Server server = (Server)Naming.lookup("//127.0.0.1/Server");
    	        contentPane.setLayout(new BorderLayout());
    	        
                    //Hier wird das RMI-JPanel übergeben
                    contentPane.add(server.method(), BorderLayout.CENTER);
    	}
    
    }
    Und hier noch das kleine JPanel:
    Code:
    	public TestPanel() {
    		
    		JButton btnNewButton = new JButton("New button");
    		btnNewButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				System.exit(0);
    			}
    		});
    		add(btnNewButton);
    
    	}
    Ich hoff mir kann einer Helfen.
    Danke schon mal !!!!

  • #2
    Versuch doch die Erzeugung des Panels (den Button) aus dem Konstruktor raus zu nehmen. Verlagere das in eine init-Methode.
    Dann empfängst du das Panel und rufst init auf, und fügst es dann dem JFrame zu
    Christian

    Comment


    • #3
      Super danke!!
      Das war es....

      Comment

      Working...
      X