Hallo liebe Community,
ich wollte in einem Fenster zwei Objekte zeigen, die ich mit der Tastatur bewegen kann. Das erste Objekt bewegt sich auch und als ich nun das zweite Objekt (in diesem Fall g.fillRect) anfertigen wollte, stellte ich fest, dass sich zwei Paint-Methoden nicht verstehen. ???:L Wie kann ich in einer Klasse zwei Objekte zeigen ? Funktioniert das jeweils mit einer Paint-Methode ?
Hier erstmal der Code:
Vielen Dank für eure Hilfe
ich wollte in einem Fenster zwei Objekte zeigen, die ich mit der Tastatur bewegen kann. Das erste Objekt bewegt sich auch und als ich nun das zweite Objekt (in diesem Fall g.fillRect) anfertigen wollte, stellte ich fest, dass sich zwei Paint-Methoden nicht verstehen. ???:L Wie kann ich in einer Klasse zwei Objekte zeigen ? Funktioniert das jeweils mit einer Paint-Methode ?
Hier erstmal 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 Hauptklasse extends JPanel implements KeyListener{
public static void main(String[] args) {
new Hauptklasse();
}
private JFrame f;
private JLabel label;
private int x = 50;
private int y = 50;
public Hauptklasse(){
f = new JFrame("SecondApplication");
f.setSize(300,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setBackground(Color.BLUE);
label = new JLabel("Quadrat");
f.add(this);
f.add(label, BorderLayout.SOUTH);
f.addKeyListener(this);
f.setVisible(true);
}
public void paint(Graphics g){
g.setColor(Color.WHITE);
g.fillRect(x,y,30,30);
}
public void paint1(Graphics g){
g.setColor(Color.RED);
g.fillRect(x-5, y-5, 5, 5);
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UP){
up(x, y);
f.repaint();
}if(e.getKeyCode() == KeyEvent.VK_DOWN){
down(x, y);
f.repaint();
}if(e.getKeyCode() == KeyEvent.VK_LEFT){
left(x, y);
f.repaint();
}if(e.getKeyCode() == KeyEvent.VK_RIGHT){
right(x, y);
f.repaint();
}
}
public void up(int x, int y) {
this.y = y-10;
f.repaint();
}
public void down(int a, int b) {
this.y = y+10;
f.repaint();
}
public void left(int a, int b) {
this.x = x-10;
f.repaint();
}
public void right(int a, int b) {
this.x = x+10;
f.repaint();
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
Vielen Dank für eure Hilfe