Hallo!
In meinem TankWar Spiel benutze ich ein JPanel mit einer Grafik um die Stärke des aktuellen Windes anzuzeigen.
Je nachdem, wie stark der Wind ist und in welche Richtung er weht, sollen über die Grafik weisse Rechtecke gezeichnet werden. Je nach Stärke verschieden groß. Die Grafik an sich ist ein einfacher Farbübergang von Rot zu Grün und dann wieder zu Rot, für beide Richtungen halt.
Allerdings werden die Rechtecke braun, auch wenn ich zuvor sage g.setColor (Color.WHITE)...
Mit Schwarz funktioniert das ganze wunderbar aber warum nicht mit weiss? Hier mal der Code:
Und wenn wir schon dabei sind... Vllt gibt es sowieso eine schönere Lösung sowas zu lösen...
Danke schonmal für Mühen und Aufwand!
In meinem TankWar Spiel benutze ich ein JPanel mit einer Grafik um die Stärke des aktuellen Windes anzuzeigen.
Je nachdem, wie stark der Wind ist und in welche Richtung er weht, sollen über die Grafik weisse Rechtecke gezeichnet werden. Je nach Stärke verschieden groß. Die Grafik an sich ist ein einfacher Farbübergang von Rot zu Grün und dann wieder zu Rot, für beide Richtungen halt.
Allerdings werden die Rechtecke braun, auch wenn ich zuvor sage g.setColor (Color.WHITE)...
Mit Schwarz funktioniert das ganze wunderbar aber warum nicht mit weiss? Hier mal der Code:
Code:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class WindPanel extends JPanel{
private static final long serialVersionUID = 3355135106963307780L;
private BufferedImage actWind;
private String path;
public WindPanel(String path) {
super ();
this.path = path;
this.loadPic (path);
}
@Override
public void paint (Graphics g){
super.paint (g);
g.drawImage (actWind, 1, 1, this);
}
public void setActWind (int strength){
this.loadPic (path);
Graphics g = actWind.getGraphics ();
if (strength >= 50){
g.setColor (Color.WHITE);
g.fillRect (0, 0, 50, 18);
g.fillRect (strength, 0, 100, 18);
}else{
g.setColor (Color.WHITE);
g.fillRect (50, 0, 50, 18);
g.fillRect (0, 0, strength, 18);
}
this.repaint ();
}
private void loadPic (String pPath){
URL pic_url = getClass ().getClassLoader ().getResource (pPath);
try{
actWind = ImageIO.read (pic_url);
}catch (IllegalArgumentException iae){
//
}catch (IOException ioe){
//
}
}
}
Und wenn wir schon dabei sind... Vllt gibt es sowieso eine schönere Lösung sowas zu lösen...
Danke schonmal für Mühen und Aufwand!