Also ich habe eine Klasse in der diverse Strings, Integer, etc. untergebracht sind. Diese können natürlich zur Laufzeit vom Benutzer geändert werden bzw. das Programm kümmert sich darum.
Damit der Benutzer auch was davon hat will ich diese ganzen Daten in einem JPanel unterbringen.
So Weiter: Ich habe eine Klasse MeinJPanel (erweitert die Klasse JPanel) geschrieben, die im Konstruktor das oben genannte Objekt entgegennimmt und alles schön so macht wie ich es will.
Jetzt kommt erstmal meine erste Frage: Da ich das Objekt in einer Parameterliste übergebe, wird das Objekt doch kopiert oder? Und wenn ich jetzt was an meinem eigentlich Objekt ändere bleibt das Objekt in dem JPanel doch verschont oder? (ich bin mir auf einmal nicht mehr so ganz sicher, "call by reference" gab es ja in Java nicht)
Zweite Frage: Damit ich die Ausgabedaten in meinem JPanel aktualisieren kann muss der JPanel wissen, wann sich etwas geändert hat an dem Objekt. Wie schaffe ich das? Ich finde es ziemlich umständlich nach jeder Änderung an meinem Objekt, aus dem Objekt heraus die Methode repaint() für den JPanel aufzurufen. Außerdem soll das Objekt von dem JPanel garnix wissen.
Ich bin da schon in der API auf das Interface Observer bzw. die Klasse Observable gestoßen allerdings steig ich da nicht durch. Ich ziehe es allerdings vor einmal selber eine Lösung zu programmieren damit ich das Prinzip von Oberservern verstehe.
Damit der Benutzer auch was davon hat will ich diese ganzen Daten in einem JPanel unterbringen.
So Weiter: Ich habe eine Klasse MeinJPanel (erweitert die Klasse JPanel) geschrieben, die im Konstruktor das oben genannte Objekt entgegennimmt und alles schön so macht wie ich es will.
Jetzt kommt erstmal meine erste Frage: Da ich das Objekt in einer Parameterliste übergebe, wird das Objekt doch kopiert oder? Und wenn ich jetzt was an meinem eigentlich Objekt ändere bleibt das Objekt in dem JPanel doch verschont oder? (ich bin mir auf einmal nicht mehr so ganz sicher, "call by reference" gab es ja in Java nicht)
Zweite Frage: Damit ich die Ausgabedaten in meinem JPanel aktualisieren kann muss der JPanel wissen, wann sich etwas geändert hat an dem Objekt. Wie schaffe ich das? Ich finde es ziemlich umständlich nach jeder Änderung an meinem Objekt, aus dem Objekt heraus die Methode repaint() für den JPanel aufzurufen. Außerdem soll das Objekt von dem JPanel garnix wissen.
Ich bin da schon in der API auf das Interface Observer bzw. die Klasse Observable gestoßen allerdings steig ich da nicht durch. Ich ziehe es allerdings vor einmal selber eine Lösung zu programmieren damit ich das Prinzip von Oberservern verstehe.