Probleme mit Graphics

Maxim6394

Bekanntes Mitglied
ich mach grade die sachen aus einem buch nach, und hab jetzt eine klasse die mit awt ein leeres fenster anzeigt. ich versuche jetzt mit dem Graphics objekt irgendetwas darauf zu zeichnen. im buch ist einfach diese methode angegeben:
Code:
001 /* Linien.inc */
002
003 public void paint(Graphics g)
004 {
005 int i;
006 int x = 80;
007
008 for (i=0; i<60; ++i) {
009 g.drawLine(x,40,x,100);
010 x += 1+3*Math.random();
011 }
012 }

aber wie zum teufel soll ich das jetzt auf das fenster anwenden? da muss ja irgendwie dieses graphics objekt rein. ich habs mit g=new Graphics(); versucht, aber da steht immer "Graphics is abstract; cannot be instantiated". also wie mache ich das jetzt?
 
wenn ich diese paint methode unter die main methode in die klasse rein schreibe, wird immernoch ein komplett leeres fenster angezeigt.
 
"In die Klasse" .... was ist das für eine KLasse? Hast du dir den Beitrag bzw die Seite mal durchgelesen? Einfach drauf los programmieren funzt nicht...(meist zumindest ;D)
 
hier ist mal der ganze code:

Code:
import java.awt.*;
import java.awt.event.*;



public class WindowClosingAdapter
extends WindowAdapter

{
boolean exitSystem;

public WindowClosingAdapter(boolean exitSystem)
	{this.exitSystem=exitSystem;}

public WindowClosingAdapter()
	{this(false);}

public void windowClosing(WindowEvent event)

	{
	event.getWindow().setVisible(false);
	event.getWindow().dispose();
	if(exitSystem){System.exit(0);}

	}

public static void main(String[] args)

	{
	
	Frame wnd=new Frame("Fenster schließen");

	wnd.addWindowListener(new WindowClosingAdapter(true));
	wnd.setBackground(Color.lightGray);
	wnd.setSize(400,300);
	wnd.setVisible(true);

}


	public void paint(Graphics g)
 {
 int i;
 int x = 80;

 for (i=0; i<60; ++i) {
g.drawLine(x,40,x,100);
 x += 1+3*Math.random();
 }

 }


}

so wie es auch in dem buch ist, aber bei mir wird nur ein leeres fenster angezeigt. hab nicht so den plan wie ich jetzt irgendwas darauf anzeigen kann. ich hab mich übrigens nur mit php beschäftigt bevor ich java versucht hab.
 
Naja so macht das Ganze auch kein Sinn. Die Methode muss in die Frame Klasse oder Panel etc... Einfach so in eine x-beliebige Klasse zu klatschen bringt nichts 😀 Lies die Tutorials!
Java:
import java.awt.*;
import java.awt.event.*;

public class WindowClosingAdapter extends WindowAdapter

{
	boolean exitSystem;

	public WindowClosingAdapter(boolean exitSystem) {
		this.exitSystem = exitSystem;
	}

	public WindowClosingAdapter() {
		this(false);
	}

	public void windowClosing(WindowEvent event)

	{
		event.getWindow().setVisible(false);
		event.getWindow().dispose();
		if (exitSystem) {
			System.exit(0);
		}

	}

	public static void main(String[] args)

	{

		Frame wnd = new Frame("Fenster schließen"){
			public void paint(Graphics g) {
				int i;
				int x = 80;

				for (i = 0; i < 60; ++i) {
					g.drawLine(x, 40, x, 100);
					x += 1 + 3 * Math.random();
				}

			}
		};

		wnd.addWindowListener(new WindowClosingAdapter(true));
		wnd.setBackground(Color.lightGray);
		wnd.setSize(400, 300);
		wnd.setVisible(true);

	}

}
 
die paint Methode ist eine Methode, die grafische Komponenten in AWT und Swing (dort aber paintComponent) haben. Wenn man diese überschreibt, kann man das Aussehen der jeweiligen Komponente anpassen.
 

Zurück
Oben