Hallo,
ich wende mich in allerhöchster Not an euch. Bis morgen soll ein Projekt fertig werden, und es sieht aus als würde es an einer Kleinigkeit scheitern.
Das Wesentliche skizziere ich grob: Ein mit NetBeans erstelltes Fenster(MainFrame) enthält ein simCanvas(siehe unten) und einige Steuerelemente. Für eine Simulation soll sich in diesem Canvas immer die aktuelle Situation darstellen. Im Konstruktor des MainFrame wird ein simCanvas erstellt.
Das ist der Code der simCanvas-Klasse:
Wenn ich die main()-Methode des MainFrame aufrufe, dann erhalte ich auch eine rote Fläche, allerdings entzieht sich trotz intensiver Durchsicht hunderter Foren und Tutorials die Funktionsweise von repaint() bzw. update() meinem Verständnis.
Meine Frage: Wie kann ich in Laufzeit (z.B. durch Druck auf einen Button) von MainFrame aus ein Rechteck in mein Canvas malen und zwar so, dass alles außenrum erhalten bleibt.
Ich glaube es ist wirklich nur eine Kleinigkeit, aber ich komme nicht dahinter.
Vielen vielen dank für schnelle Antworten!
.SyS
ich wende mich in allerhöchster Not an euch. Bis morgen soll ein Projekt fertig werden, und es sieht aus als würde es an einer Kleinigkeit scheitern.
Das Wesentliche skizziere ich grob: Ein mit NetBeans erstelltes Fenster(MainFrame) enthält ein simCanvas(siehe unten) und einige Steuerelemente. Für eine Simulation soll sich in diesem Canvas immer die aktuelle Situation darstellen. Im Konstruktor des MainFrame wird ein simCanvas erstellt.
Das ist der Code der simCanvas-Klasse:
Java:
import java.awt.*;
public class simCanvas extends Canvas {
public void paint(final Graphics g){
super.paint(g);
g.setColor(Color.RED);
g.fillRect(0, 0, 500, 500);
}
}
Wenn ich die main()-Methode des MainFrame aufrufe, dann erhalte ich auch eine rote Fläche, allerdings entzieht sich trotz intensiver Durchsicht hunderter Foren und Tutorials die Funktionsweise von repaint() bzw. update() meinem Verständnis.
Meine Frage: Wie kann ich in Laufzeit (z.B. durch Druck auf einen Button) von MainFrame aus ein Rechteck in mein Canvas malen und zwar so, dass alles außenrum erhalten bleibt.
Ich glaube es ist wirklich nur eine Kleinigkeit, aber ich komme nicht dahinter.
Vielen vielen dank für schnelle Antworten!
.SyS