Hallo,
ich habe es mit eurer Hilfe geschafft, ein Frame zu erzeuge, wo sich ein Viereck mit Tastatureingaben bewegen lässt. Das Problem ist, dass sich das Label, welches anzeigen soll, ob das Viereck ein Quadrat oder Rechteck ist, sich nicht durch ein anderes Label ersetzen lässt ... ???:L
Das hört sich jetzt vielleicht etwas verwirrend an...
Hier ist der Code:
ich habe es mit eurer Hilfe geschafft, ein Frame zu erzeuge, wo sich ein Viereck mit Tastatureingaben bewegen lässt. Das Problem ist, dass sich das Label, welches anzeigen soll, ob das Viereck ein Quadrat oder Rechteck ist, sich nicht durch ein anderes Label ersetzen lässt ... ???:L
Das hört sich jetzt vielleicht etwas verwirrend an...
Hier ist der Code:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class OwnGraphic extends JPanel implements KeyListener{
private JFrame f;
private JLabel label;
private JLabel label1;
public int a = 100;
public int b = 100;
public OwnGraphic(){
f = new JFrame("Bewegung");
f.setSize(500,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
label = new JLabel("Rechteck");
label1 = new JLabel("Quadrat");
f.add(label, BorderLayout.SOUTH);
f.setBackground(Color.orange);
f.addKeyListener(this);
f.setVisible(true);
}
public void paint(Graphics g){
g.fillRect(/*a+*/60,/*b+*/60,a+50,b+50);
}
public static void main(String[] args) {
new OwnGraphic();
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UP){
System.out.println("Nach oben bewegen-Taste gedrückt!");
System.out.println("B-Koordinate:" + b);
System.out.println("A-Koordinate:" + a);
up(a, b);
f.repaint();
}if(e.getKeyCode() == KeyEvent.VK_DOWN){
System.out.println("Nach unten-Taste gedrückt!");
System.out.println("B-Koordinate:" + b);
System.out.println("A-Koordinate:" + a);
down(a, b);
f.repaint();
}if(e.getKeyCode() == KeyEvent.VK_LEFT){
System.out.println("Nach links-Taste gedrückt!");
System.out.println("B-Koordinate:" + b);
System.out.println("A-Koordinate:" + a);
left(a, b);
f.repaint();
}if(e.getKeyCode() == KeyEvent.VK_RIGHT){
System.out.println("Nach rechts-Taste gedrückt!");
System.out.println("B-Koordinate:" + b);
System.out.println("A-Koordinate:" + a);
right(a, b);
f.repaint();
}
}
public void up(int a, int b) {
this.b = b-2;
if(a == b){
f.remove(label);
f.add(label1, BorderLayout.SOUTH);
f.repaint();
}if(this.a != this.b){
f.remove(label1);
f.add(label, BorderLayout.SOUTH);
f.repaint();
}
}
public void down(int a, int b) {
this.b = b+2;
if(a == b){
f.remove(label);
f.add(label1, BorderLayout.SOUTH);
f.repaint();
}if(a != b){
f.remove(label1);
f.add(label, BorderLayout.SOUTH);
f.repaint();
}
}
public void left(int a, int b) {
this.a = a-2;
if(a == b){
f.remove(label);
f.add(label1, BorderLayout.SOUTH);
f.repaint();
}if(a != b){
f.remove(label1);
f.add(label, BorderLayout.SOUTH);
f.repaint();
}
}
public void right(int a, int b) {
this.a = a+2;
if(a == b){
f.remove(label);
f.add(label1, BorderLayout.SOUTH);
f.repaint();
}if(a != b){
f.remove(label1);
f.add(label, BorderLayout.SOUTH);
f.repaint();
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
}