Hallo!
Ich arbeite noch nicht lange mit swing, daher entschuldigt bitte, falls meine frage etwas naiv klingen mag und/oder eher in den anfängerbereich gehört...
ich arbeite mittels der mvc-struktur und möchte in ein fenster immer wieder mal was zeichnen lassen, je nachdem was der benutzer für eingaben auf der konsole macht. alles klappt 1 a, nur die zeichnung in das fenster ist mir bisher ein rätsel...
so, ich habe das mal etwas verkürzt. sobald der benutzer neue eingaben macht, berechnet das modell neue punkte und benachrichtigt seine observer. die methode update wird dann auch aufgerufen und die korrekten punkte ausgeben.
wie zeichne ich nun diese punkte (mit Graphics.drawPolygon() ) in das Jpanel?
meine kentnisse sind soweit: ich muss ein eigenes panel von Jpanel ableiten, dort dann in die paint methode das zu zeichnende einfügen (wie die punkte dann dorthin übergeben werden, ist mir ein rätsel), und diese paint methode wird dann immer via repaint() aufgerufen...
aber das muss doch auch irgendwie einfacher gehen, oder nicht?!?
Ich arbeite noch nicht lange mit swing, daher entschuldigt bitte, falls meine frage etwas naiv klingen mag und/oder eher in den anfängerbereich gehört...
ich arbeite mittels der mvc-struktur und möchte in ein fenster immer wieder mal was zeichnen lassen, je nachdem was der benutzer für eingaben auf der konsole macht. alles klappt 1 a, nur die zeichnung in das fenster ist mir bisher ein rätsel...
Code:
public class Zeichner implements Observer {
private JFrame fenster;
private JPanel inhalt = new JPanel();
/**
* Konstruktor, initialisiert MVC-Struktur
* @param rechner das Modell
*/
public Zeichner(Rechner rechner, String titel) {
fenster = new JFrame(titel);
...
initView();
...
}
/**
* Methode um View zu initialiseren
*/
private void initView() {
draw();
inhalt.setPreferredSize(new Dimension(500,500));
fenster.setContentPane(inhalt);
fenster.setVisible(true);
}
...
public void update(Observable m, Object o) {
int[][] punkte = rechner.getPunkte();
for( int i = 0; i < punkte.length; i++ )
System.out.println( "Punkte: " + punkte[i][0] + " " + punkte[i][1] );
}
...
wie zeichne ich nun diese punkte (mit Graphics.drawPolygon() ) in das Jpanel?
meine kentnisse sind soweit: ich muss ein eigenes panel von Jpanel ableiten, dort dann in die paint methode das zu zeichnende einfügen (wie die punkte dann dorthin übergeben werden, ist mir ein rätsel), und diese paint methode wird dann immer via repaint() aufgerufen...
aber das muss doch auch irgendwie einfacher gehen, oder nicht?!?