R
ronbigb
Gast
Hallo!
Ich sitze arg in der Klemme und wäre für jeden Hint sehr dankbar. Also: Vielen Dank schon mal im voraus für Eure Bemühungen.
Es geht um folgendes: Ich arbeite an einem Applet, welches EKGs darstellt. Diese bzw. die einzelnen Zeiten können dann vermessen werden. Das funktioniert auch einwandfrei:
Ich hoffe, das war einigermassen verständlich (geht ja nur um's Prinzip). Aber - wie gesagt - das funktioniert im Prinzip alles einwandfrei.
Das Problem kommt jetzt: Nun soll der User zusätzlich in das EKG zoomen können und in diesem Teil soll natürlich wieder vermessen werden. Dazu müsste ich aber das dargestellte ImageIcon ändern können und das krieg ich schlichtweg nicht hin. Auch wenn ich Anweisungen wie pane.remove(measurement); einfüge, um danach z.B. eine zweite Instanz von Measurement mit anderem image zu erstellen und diese wieder einzufügen mit add(), klappt das einfach nicht.
Auch funktioniert pane.removeAll() und ähnliches nicht, irgendwie liegt der Hund wohl in paintComponent begraben (?).
Initial habe ich versucht, irgendwie die image-Variable "dynamisch" zu halten, aber soviel ich unterdessen begriffen habe, kann ich den Inhalt einer Variable, die ich an die Subklasse weitergebe ja danach nicht einfach wieder ändern.
Ihr werdet es bemerkt haben: Mein Wissen reicht nicht aus und die Suche im Netz hat sich als extrem frustran herausgestellt. Ich bitte Euch daher um jeden Hinweis, der eventuell weiterhilft. Merci!
Ich sitze arg in der Klemme und wäre für jeden Hint sehr dankbar. Also: Vielen Dank schon mal im voraus für Eure Bemühungen.
Es geht um folgendes: Ich arbeite an einem Applet, welches EKGs darstellt. Diese bzw. die einzelnen Zeiten können dann vermessen werden. Das funktioniert auch einwandfrei:
Code:
public class Test05 extends JApplet {
...
public Component createComponents() {
...
ImageIcon image = new ImageIcon("ekg.jpg");
Measurement measurement = new Measurement(image, this);
pane.add(measurement);
return pane;
}
private void createGUI() {
getContentPane().add(createComponents());
}
public void init() {
try {... createGUI(); }
catch (Exception e) { ... }
}
public class Measurement extends JLabel {
...
Test05 controller;
public Measurement(ImageIcon image, Test05 controller) {
super(image);
this.controller = controller;
...
}
// An dieser Stelle kommt eine MouseListener-Subklasse, die auf die Mauseingabe zur Vermessung reagiert
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// Hier folgen alle drawLine-Anweisungen, um die "Messlate" zu zeichnen
g.drawLine(x1,y,x2,y);
...
}
}
Das Problem kommt jetzt: Nun soll der User zusätzlich in das EKG zoomen können und in diesem Teil soll natürlich wieder vermessen werden. Dazu müsste ich aber das dargestellte ImageIcon ändern können und das krieg ich schlichtweg nicht hin. Auch wenn ich Anweisungen wie pane.remove(measurement); einfüge, um danach z.B. eine zweite Instanz von Measurement mit anderem image zu erstellen und diese wieder einzufügen mit add(), klappt das einfach nicht.
Auch funktioniert pane.removeAll() und ähnliches nicht, irgendwie liegt der Hund wohl in paintComponent begraben (?).
Initial habe ich versucht, irgendwie die image-Variable "dynamisch" zu halten, aber soviel ich unterdessen begriffen habe, kann ich den Inhalt einer Variable, die ich an die Subklasse weitergebe ja danach nicht einfach wieder ändern.
Ihr werdet es bemerkt haben: Mein Wissen reicht nicht aus und die Suche im Netz hat sich als extrem frustran herausgestellt. Ich bitte Euch daher um jeden Hinweis, der eventuell weiterhilft. Merci!