G
Guest
Gast
Hallo habe vollgendes problem.
ich versuche gerade ein wenig mit swing und awt zu spielen und habe ein gesicht gezeichnet. wenn man in dem Mund klickt verfärbt sich das linke auge... also díeser MouseListener funktioniert schon mal ... jetzt wollte ich noch nen keylistener hinzufügen der wenn ich eine taste gedrückt halte und dabei in den Mund klicke soll irgendwas anderes passieren (zumbeispiel anderes auge in einer farbe) aber ich bekomme mit diesem Keylistener nichts hin. Habe viele methoden ausprobiert aber egal wie ider was ich ausprobiere ich bekomme nichts angezeigt nich net mal in einer System.out.println() den keycode oder so... WAS MACHE ICH DA FALSCH?
Ach so das die methoden net der reisser sind weiss ich ich spiele ja auch nur rum ;-)
Danke schon mal für jede hilfe... . ach so wenn einer Hilft bitte erklärt es net so schwer;-)
ich versuche gerade ein wenig mit swing und awt zu spielen und habe ein gesicht gezeichnet. wenn man in dem Mund klickt verfärbt sich das linke auge... also díeser MouseListener funktioniert schon mal ... jetzt wollte ich noch nen keylistener hinzufügen der wenn ich eine taste gedrückt halte und dabei in den Mund klicke soll irgendwas anderes passieren (zumbeispiel anderes auge in einer farbe) aber ich bekomme mit diesem Keylistener nichts hin. Habe viele methoden ausprobiert aber egal wie ider was ich ausprobiere ich bekomme nichts angezeigt nich net mal in einer System.out.println() den keycode oder so... WAS MACHE ICH DA FALSCH?
Ach so das die methoden net der reisser sind weiss ich ich spiele ja auch nur rum ;-)
Code:
import java.awt.*;
import javax.swing.*;
import utilities.*;
import java.awt.geom.*;
import java.awt.event.*;
public class Gesicht extends JFrame {
public class GesichtselemetePanel extends JPanel{
Color col1 = Color.white;
Color col2 = Color.white;
Color col3 = Color.white;
public GesichtselemetePanel(){
super();
addMouseListener(new MausAktionen());
addKeyListener(new Tastaturaction());
}
class MausAktionen extends MouseAdapter {
public void mouseClicked ( MouseEvent e){
geklickt(e.getX(), e.getY());
}
public void mouseEntered(MouseEvent e){
setzeFarbeMund(e.getX(),e.getY());
}
public void mouseExit(MouseEvent e){
setzeFarbeMund(e.getX(),e.getY());
}
}
class Tastaturaction extends KeyAdapter{
public void KeyPressed(KeyEvent e){
e.getKeyCode();
}
}
public void test(char a){
if(a == 'A'){
System.out.println(a);
}
}
public void setzeFarbeMund(int x, int y){
if(istimMund(x,y) == true){
this.col3 = Color.YELLOW;
this.repaint();
}
}
public void geklickt(int x, int y){
if(istimMund(x,y)== true){
this.col1 = Color.green;
this.repaint();
System.out.println("True");
}
if(istimMund(x,y)== false){
this.col1 = Color.red;
this.repaint();
}
System.out.println("Klick an"+ x +","+ y );
}
public boolean istimMund(int x, int y){
if((x>30 && x< 263) && (y>120 && y<153)) {
return true;
}return false;
}
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
super.paintComponent(g2);
setBackground(Color.GRAY);
Dimension d = getSize(null);
g2.scale(d.getWidth()/100.0 , -d.getHeight()/ 100.0);
g2.translate(0, -100);
g2.draw(new Ellipse2D.Double(55,55, 35, 35));
g2.setColor(col2);
g2.fill(new Ellipse2D.Double(55,55, 35, 35));
g2.setColor(Color.black);
g2.draw(new Ellipse2D.Double(10,55, 35, 35));
g2.setColor(col1);
g2.fill(new Ellipse2D.Double(10,55, 35, 35));
g2.setColor(Color.black);
g2.draw(new Rectangle2D.Double(10,10,80, 20));
g2.setColor(col3);
g2.fill(new Rectangle2D.Double(10,10,80, 20));
}
}
GesichtselemetePanel gEP;
/** Creates a new instance of Gesicht */
public Gesicht(int x, int y, int w, int h) {
super();
this.setSize(w,h);
this.setLocation(x,y);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
gEP = new GesichtselemetePanel();
this.setContentPane(gEP);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Gesicht test = new Gesicht(0,0,300,200);
test.setVisible(true);
// TODO code application logic here
}
}
Danke schon mal für jede hilfe... . ach so wenn einer Hilft bitte erklärt es net so schwer;-)