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?
paint wird automatisch mit dem korrekten Graphics aufgerufen, um den Aufruf musst du dich also nicht kümmern.Näheres steht aber auch hier in der FAQ oder in den Weiten des Internets, z.B. hier Painting in AWT and Swing
"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)
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:
importjava.awt.*;importjava.awt.event.*;publicclassWindowClosingAdapterextendsWindowAdapter{boolean exitSystem;publicWindowClosingAdapter(boolean exitSystem){this.exitSystem = exitSystem;}publicWindowClosingAdapter(){this(false);}publicvoidwindowClosing(WindowEvent event){
event.getWindow().setVisible(false);
event.getWindow().dispose();if(exitSystem){System.exit(0);}}publicstaticvoidmain(String[] args){Frame wnd =newFrame("Fenster schließen"){publicvoidpaint(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(newWindowClosingAdapter(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.