Ich habe ein Frame mit zwei Quadraten --> siehe bild
Der Quellcode lautet:
[Java]
package game;
import javax.swing.*;
import java.util.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
public class Spiel extends JPanel implements KeyListener
{
JFrame fenster;
int A_Y = 150; // Höhenregler Spieler A
int B_Y = 150; // Höhenregler Spieler B
Graphics g;
Spiel()
{ fenster = new JFrame();
fenster.add(this);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setExtendedState(JFrame.MAXIMIZED_BOTH);
fenster.getContentPane().setBackground(Color.blue);
fenster.addKeyListener(this);
fenster.pack();
fenster.setVisible(true);
}
protected void paintComponent( Graphics g){
this.g = g;
int ha = A_Y;
int hb = B_Y;
g.clearRect(0,0,this.getWidth(),this.getHeight());
g.drawRect(50,ha,50,150);
g.fillRect(50,ha,50,150);
g.drawRect(1550,hb,50,150);
g.fillRect(1550,hb,50,150);
repaint();
}
public void keyPressed(KeyEvent e)
{ if( e.getKeyCode() == 40) // 40 Code für runter
{
B_Y = B_Y + 30;
}
if( e.getKeyCode() == 38) // 38 Code für rauf
{
B_Y = B_Y - 30;
}
if( e.getKeyCode() == 87) // rauf
{
A_Y = A_Y - 30;
}
if( e.getKeyCode() == 83) // runter
{
A_Y = A_Y + 30;
}
}
public void keyTyped(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
} [/Java]
Meine Fragen:
1.) Gibt es eine Möglichkeit für mich eines der Quadrate anzusprechen und ihm eine Farbe zu geben?
Ich möchte generell gerne wissen, wie die Methode paintComponent zwischen 2, oder mehreren Zeichnungen unterscheiden kann.
2.) Ich habe die Background Color auf Blue gestellt und es verändert sich nichts, wieso?
Wäre für auführliche verständliche Antworten sehr dankbar!
Der Quellcode lautet:
[Java]
package game;
import javax.swing.*;
import java.util.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
public class Spiel extends JPanel implements KeyListener
{
JFrame fenster;
int A_Y = 150; // Höhenregler Spieler A
int B_Y = 150; // Höhenregler Spieler B
Graphics g;
Spiel()
{ fenster = new JFrame();
fenster.add(this);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setExtendedState(JFrame.MAXIMIZED_BOTH);
fenster.getContentPane().setBackground(Color.blue);
fenster.addKeyListener(this);
fenster.pack();
fenster.setVisible(true);
}
protected void paintComponent( Graphics g){
this.g = g;
int ha = A_Y;
int hb = B_Y;
g.clearRect(0,0,this.getWidth(),this.getHeight());
g.drawRect(50,ha,50,150);
g.fillRect(50,ha,50,150);
g.drawRect(1550,hb,50,150);
g.fillRect(1550,hb,50,150);
repaint();
}
public void keyPressed(KeyEvent e)
{ if( e.getKeyCode() == 40) // 40 Code für runter
{
B_Y = B_Y + 30;
}
if( e.getKeyCode() == 38) // 38 Code für rauf
{
B_Y = B_Y - 30;
}
if( e.getKeyCode() == 87) // rauf
{
A_Y = A_Y - 30;
}
if( e.getKeyCode() == 83) // runter
{
A_Y = A_Y + 30;
}
}
public void keyTyped(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
} [/Java]
Meine Fragen:
1.) Gibt es eine Möglichkeit für mich eines der Quadrate anzusprechen und ihm eine Farbe zu geben?
Ich möchte generell gerne wissen, wie die Methode paintComponent zwischen 2, oder mehreren Zeichnungen unterscheiden kann.
2.) Ich habe die Background Color auf Blue gestellt und es verändert sich nichts, wieso?
Wäre für auführliche verständliche Antworten sehr dankbar!