Ich hab da mal ne Frage, bezüglich der KeyEvent´s.
Ich wollte ein Bild erstellen was je nach gedrückter Taste anders aussieht.
Vorab nur 2 Aussehen.
Hab die in Abhängigkeit von einem int angesetzt, und will diesen über Tastendruck verändern.
Kann mir jemand sagen was ich falsch gemacht habe?
Wichtige Stellen:
Ich wollte ein Bild erstellen was je nach gedrückter Taste anders aussieht.
Vorab nur 2 Aussehen.
Hab die in Abhängigkeit von einem int angesetzt, und will diesen über Tastendruck verändern.
Kann mir jemand sagen was ich falsch gemacht habe?
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.*;
public class Toastbrot extends JFrame {
JPanel panel;
public Toastbrot(){
panel = new KreisPanel();
add(panel);
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
int mode = 1;
public static void main(String[] args) {
new Toastbrot();
}
/*
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT ) {
mode = 1;
} else if (e.getKeyCode() == KeyEvent.VK_LEFT ) {
mode = 0;
} else if (e.getKeyCode() == KeyEvent.VK_UP ) {
mode = 1;
} else if (e.getKeyCode() == KeyEvent.VK_DOWN ) {
mode = 0;
}
repaint();
*/
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch( keyCode ) {
case KeyEvent.VK_UP:
mode = 1;
break;
case KeyEvent.VK_DOWN:
mode = 0;
break;
case KeyEvent.VK_LEFT:
// handle left
break;
case KeyEvent.VK_RIGHT :
// handle right
break;
}
}
class KreisPanel extends JPanel {
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(new Color( Integer.parseInt( "339933", 16 ) ));
g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
//Toast
int mx = 120;
int my = 170;
int mr = 85;
int Rx = 100;
int Ry = 150;
int Rw = 250;
int Rh = 300;
int ox = 255;
int oy = 85;
int or = 170;
//Augen
int ax = 150;
int ay = 200;
int ab = 50;
int ah = 150;
int bx = 250;
int by = 200;
int bb = 50;
int bh = 150;
//Mund
int nx = 150;
int ny = 360;
int nh = 50;
int nb = 150;
//ToastDunkel
g2d.setColor(new Color( Integer.parseInt( "FF9900", 16 ) ));
g2d.fillRect(Rx, Ry, Rw, Rh);
g2d.fillOval(ox, oy, or, or);
g2d.fillOval(mx-mr, my-mr, 2*mr, 2*mr);
//ToastHell
g2d.setColor(new Color( Integer.parseInt( "FFCC66", 16 ) ) );
g2d.fillRect(Rx+10, Ry+10, Rw-20, Rh-20);
g2d.fillOval(ox+10, oy+10, or-20, or-20);
g2d.fillOval(mx-mr+10, my-mr+10, 2*mr-20, 2*mr-20);
//AugenWeiß
g2d.setColor(new Color( Integer.parseInt( "FFFFFF", 16 ) ) );
g2d.fillOval(ax, ay, ab, ah);
g2d.fillOval(bx, by, bb, bh);
//AugenSchwarz
g2d.setColor(new Color( Integer.parseInt( "000000", 16 ) ) );
g2d.fillOval(ax+10, ay+50, ab-15, ah-65);
g2d.fillOval(bx+10, by+50, bb-15, bh-65);
//Mund
if (mode==1) {
g2d.setColor(new Color( Integer.parseInt( "000000", 16 ) ) );
g2d.fillOval(nx, ny, nb, nh);
g2d.setColor(new Color( Integer.parseInt( "FFCC66", 16 ) ) );
g2d.fillOval(nx, ny-5, nb, nh);
}
else if (mode==0) {
g2d.setColor(new Color( Integer.parseInt( "000000", 16 ) ) );
g2d.fillOval(nx, ny, nb, nh);
g2d.setColor(new Color( Integer.parseInt( "FFCC66", 16 ) ) );
g2d.fillOval(nx, ny+5, nb, nh);
}
}
}
}
Java:
if (mode==1) {
g2d.setColor(new Color( Integer.parseInt( "000000", 16 ) ) );
g2d.fillOval(nx, ny, nb, nh);
g2d.setColor(new Color( Integer.parseInt( "FFCC66", 16 ) ) );
g2d.fillOval(nx, ny-5, nb, nh);
}
else if (mode==0) {
g2d.setColor(new Color( Integer.parseInt( "000000", 16 ) ) );
g2d.fillOval(nx, ny, nb, nh);
g2d.setColor(new Color( Integer.parseInt( "FFCC66", 16 ) ) );
g2d.fillOval(nx, ny+5, nb, nh);
}
Java:
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch( keyCode ) {
case KeyEvent.VK_UP:
mode = 1;
break;
case KeyEvent.VK_DOWN:
mode = 0;
break;
case KeyEvent.VK_LEFT:
// handle left
break;
case KeyEvent.VK_RIGHT :
// handle right
break;
}
}
Zuletzt bearbeitet: