N
nadine_
Gast
Hallo zusammen... vllt mal zwei etwas dumme fragen, aber ich noch eher ein Java Grünschnabel und komm einfach nicht mehr weiter.
1. Frage:
Es ist ein kleines Applet bei dem ich ein Array mit Farbwerten gesetzt habe, wenn das Applet startet... Dafür eine eigene Methode die sich setCol() nennt.
Desweiteren wie ihr vllt sehen könnnt, zeichne ich ein Rechteck das die Hintergrundfarbe annehmen soll (also, eine unsichtbare Box). Also nehmen wir mal an Yellow. Klicke ich dann nachher auf das Applet, sollte sich die Farbe des Rechtecks so verändern, dass es die Farbe von nc annimmt...
So wie ich das aus der Fragestellung meines Profs rauslese, sollte scheinbar durch die Methode setCol() die Hintergrundfarbe des Applets die gesetzte Farbe der Methode setCol() annehmen... Nun hab ich absolut keine Ahnung wie, ich das in der init() Methode schreiben muss, dass ich nicht setBackground(...) angeben muss, sondern mit der Farbe meiner eigenen Methode.
Rufe ich das Applet auf, habe ich zwar einen gelben Hintergrund, aber auch nur weil ich das mit setBackground so eingestellt habe und das ja eigentlich nicht so sein sollte...
Außerdem ist gleich zum Anfang mein Rechteck schwarz... Sollte aber doch gelb sein und erst beim klicken schwarz werden. :bahnhof:
2. Frage.:
Desweiteren implementiere ich nicht direkt den Mouselistener sondern schreibe dafür eine eigene Ereignisklasse.
Ich müsste nun das ganze so umschreiben, dass ich beim Reinfahren der Maus einen blauen Hintergrund bekomme (was ich ja schon hingekriegt habe) aber ich sollte nun auch wieder meine alte Hintergrundfarbe bekommen, wenn ich mit der Maus wieder aus dem Applet fahre. Ich schätze mal, dass ich irgendetwas in der Methode mouseReleased() machen müsste... frage ist nur, was?
Hier mein Code:
Und die eigene Ereignisklasse:
Ich wär euch sehr verbunden, wenn irgendjemand mir nen kleinen Hinweis geben könnte...
Vlg,
nadine_
1. Frage:
Es ist ein kleines Applet bei dem ich ein Array mit Farbwerten gesetzt habe, wenn das Applet startet... Dafür eine eigene Methode die sich setCol() nennt.
Desweiteren wie ihr vllt sehen könnnt, zeichne ich ein Rechteck das die Hintergrundfarbe annehmen soll (also, eine unsichtbare Box). Also nehmen wir mal an Yellow. Klicke ich dann nachher auf das Applet, sollte sich die Farbe des Rechtecks so verändern, dass es die Farbe von nc annimmt...
So wie ich das aus der Fragestellung meines Profs rauslese, sollte scheinbar durch die Methode setCol() die Hintergrundfarbe des Applets die gesetzte Farbe der Methode setCol() annehmen... Nun hab ich absolut keine Ahnung wie, ich das in der init() Methode schreiben muss, dass ich nicht setBackground(...) angeben muss, sondern mit der Farbe meiner eigenen Methode.
Rufe ich das Applet auf, habe ich zwar einen gelben Hintergrund, aber auch nur weil ich das mit setBackground so eingestellt habe und das ja eigentlich nicht so sein sollte...
Außerdem ist gleich zum Anfang mein Rechteck schwarz... Sollte aber doch gelb sein und erst beim klicken schwarz werden. :bahnhof:
2. Frage.:
Desweiteren implementiere ich nicht direkt den Mouselistener sondern schreibe dafür eine eigene Ereignisklasse.
Ich müsste nun das ganze so umschreiben, dass ich beim Reinfahren der Maus einen blauen Hintergrund bekomme (was ich ja schon hingekriegt habe) aber ich sollte nun auch wieder meine alte Hintergrundfarbe bekommen, wenn ich mit der Maus wieder aus dem Applet fahre. Ich schätze mal, dass ich irgendetwas in der Methode mouseReleased() machen müsste... frage ist nur, was?
Hier mein Code:
Code:
import java.applet.*;
import java.awt.*;
public class AWTEMaus02 extends Applet{
int rx = 20;
int ry = 30;
MausKlick mk = new MausKlick(this);
public void setCol(){
Color col[] = new Color[1];
col[0] = Color.YELLOW;
}
public void chaCol(){
Color nc[] = new Color[1];
nc [0] = Color.BLACK;
repaint();
}
public void init(){
setCol();
setBackground(Color.ORANGE);
addMouseListener(mk);
}
public void paint(Graphics g){
g.fill3DRect(rx, ry, 80, 30, true);
}
}
Und die eigene Ereignisklasse:
Code:
import java.awt.*;
import java.awt.event.*;
public class MausKlick implements MouseListener{
AWTEMaus02 mlk;
public MausKlick(AWTEMaus02 mlk){
this.mlk = mlk;
}
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
mlk.setBackground(Color.BLUE);
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
mlk.rx = e.getX() - 20;
mlk.ry = e.getY() - 10;
mlk.chaCol();
mlk.repaint();
}
public void mouseReleased(MouseEvent e){
}
}
Ich wär euch sehr verbunden, wenn irgendjemand mir nen kleinen Hinweis geben könnte...
Vlg,
nadine_