Steuerelemente

Status
Nicht offen für weitere Antworten.

Turtle28

Mitglied
Ich habe 2Dateien, malen.java enthält das Applet und Turtle.java den Rest.

malen.java
Code:
public class malen extends Applet
                   
{
        Turtle t;
        
        public void init()
        {
                t=new Turtle(this,200,200,0);
		t.interaktiv();  
                
        }      
}

Turtle.java
Code:
class Turtle 
{
        protected int posX = 10,
                   posY = 10,
                   winkel;
            
        protected Button malenB = new Button("Drueck mich");
               
        protected Graphics g; 
        
        protected Container c;
        
        public Turtle(Container cont)
        {
                this(cont, 0, 0, 0);
        }
        
        public Turtle(Container cont, int x, int y, int richtung)
        {       
                posX = x;
                posY = y;
                winkel = richtung;
                g=c.getGraphics();
                c=cont;
        }
        
        public void vor()
        {
                g.drawLine(posX, posY, 20, 20); 
                
        }
        
        public void interaktiv()
        {
                c.setBackground(Color.red); 
                Aktionen a = new Aktionen();
                malenB.addActionListener(a);
                c.add(malenB);
        }
        
        class Aktionen implements ActionListener
        {
                public void actionPerformed(ActionEvent e)
                {
                        Object quelle = e.getSource();
                        if(quelle == malenB)
                        {
                                vor();
                        }
                }
        }
}
Wenn ich das Applet starte wird nichts angezeigt! Woran könnte das liegen???
 

dotlens

Top Contributor
überschreibe die paint() methode im Applet. ansonsten wird nichts angezeigt.
deine Zusatzklasse macht nicht allzu viel sinn.
Kannst probieren t.interaktiv(); in der paint() methode aufzurufen...
 

Sky

Top Contributor
Sie Zeile 21ff.

Code:
class Turtle {  
  protected int posX = 10,
                posY = 10,
                winkel;
           
  protected Button malenB = new Button("Drueck mich");
               
  protected Graphics g;
       
  protected Container c;
       
  public Turtle(Container cont) {
    this(cont, 0, 0, 0);
  }
       
  public Turtle(Container cont, int x, int y, int richtung) {
    posX = x;
    posY = y;
    winkel = richtung;
    // die beiden folgenden Zeilen habe ich in der Reihenfolge
    // geändert, da 'c' ansonsten immer NULL ist.
    c=cont;
    g=c.getGraphics();
  }
       
  public void vor() {
    g.drawLine(posX, posY, 20, 20);
  }
       
  public void interaktiv() {
    c.setBackground(Color.red);
    Aktionen a = new Aktionen();
    malenB.addActionListener(a);
    c.add(malenB);
  }
       
  class Aktionen implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      Object quelle = e.getSource();
      if(quelle == malenB) {
        vor();
      }
    }
  }
}
 

Sky

Top Contributor
dotlens hat gesagt.:
überschreibe die paint() methode im Applet. ansonsten wird nichts angezeigt.
Das ist in diesem Fall nicht nötig. Der übergebene Parameter Container cont enthält den Graphics, der im folgenden Code verwendet wird; dadurch ist eine Anzeige sehr wohl möglich.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben