Hallo zusammen,
ich bin gerade dabei ein Spielfeld zu programmieren, indem (wie bei Mensch ärgere dich nicht) bestimmte Felder verschiedene Farben annehmen.
Die Kreise sind als Arrays definiert und nun versuche ich Feld[41] in eine andere Farbe zu geben
Dachte nun das kann man über eine For-Schleife machen, in der man eine Bedingung abfragt, in der Art:
Hier das Spielfeld:
Und hier die Klasse Feld:
Vielen Dank schon mal
ich bin gerade dabei ein Spielfeld zu programmieren, indem (wie bei Mensch ärgere dich nicht) bestimmte Felder verschiedene Farben annehmen.
Die Kreise sind als Arrays definiert und nun versuche ich Feld[41] in eine andere Farbe zu geben
Dachte nun das kann man über eine For-Schleife machen, in der man eine Bedingung abfragt, in der Art:
Java:
public void paint(java.awt.Graphics g) {
super.paint(g);
for(int i=0; i<kreis.length; i++) {
if(kreis[i].FeldArt == 1)
kreis[i].zeichneN(g);
if(kreis[i].FeldArt == 0)
kreis[i].zeichneHgr(g);
}
}
Hier das Spielfeld:
Java:
package GUI;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import java.awt.Color;
import javax.swing.border.MatteBorder;
public class SpielfeldKlassisch extends JFrame{
private JPanel contentPane;
Feld[] kreis;
private JPanel panel;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SpielfeldKlassisch frame = new SpielfeldKlassisch();
frame.setVisible(true);
frame.setSize(1200,850);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public SpielfeldKlassisch() {
setBackground(new Color(240, 240, 240));
getContentPane().setLayout(null);
getContentPane().add(getPanel());
int kr = 50;
kreis = new Feld[kr];
for(int i=1; i<kr; i++) {
//Feld 1-40 Normalfelder
kreis[0] = new Feld(534,76,55,1);
kreis[40] = new Feld(534,76,55,1);
kreis[1] = new Feld(534,140,55,1);
kreis[2] = new Feld(534,204,55,1);
kreis[3] = new Feld(534,268,55,1);
kreis[4] = new Feld(534,332,55,1);
kreis[5] = new Feld(598,332,55,1);
kreis[6] = new Feld(662,332,55,1);
kreis[7] = new Feld(726,332,55,1);
kreis[8] = new Feld(790,332,55,1);
kreis[9] = new Feld(790,396,55,1);
kreis[10] = new Feld(790,460,55,1);
kreis[11] = new Feld(726,460,55,1);
kreis[12] = new Feld(662,460,55,1);
kreis[13] = new Feld(598,460,55,1);
kreis[14] = new Feld(534,460,55,1);
kreis[15] = new Feld(534,524,55,1);
kreis[16] = new Feld(534,588,55,1);
kreis[17] = new Feld(534,652,55,1);
kreis[18] = new Feld(534,716,55,1);
kreis[19] = new Feld(470,716,55,1);
kreis[20] = new Feld(406,716,55,1);
kreis[21] = new Feld(406,652,55,1);
kreis[22] = new Feld(406,588,55,1);
kreis[23] = new Feld(406,524,55,1);
kreis[24] = new Feld(406,460,55,1);
kreis[25] = new Feld(342,460,55,1);
kreis[26] = new Feld(278,460,55,1);
kreis[27] = new Feld(214,460,55,1);
kreis[28] = new Feld(150,460,55,1);
kreis[29] = new Feld(150,396,55,1);
kreis[30] = new Feld(150,332,55,1);
kreis[31] = new Feld(214,332,55,1);
kreis[32] = new Feld(278,332,55,1);
kreis[33] = new Feld(342,332,55,1);
kreis[34] = new Feld(406,332,55,1);
kreis[35] = new Feld(406,268,55,1);
kreis[36] = new Feld(406,204,55,1);
kreis[37] = new Feld(406,140,55,1);
kreis[38] = new Feld(406,76,55,1);
kreis[39] = new Feld(470,76,55,1);
//Hausfelder gruen
kreis[41] = new Feld(150,76,55,0);
}
}
public void paint(java.awt.Graphics g) {
super.paint(g);
for(int i=0; i<kreis.length; i++) {
if(kreis[i].FeldArt == 1)
kreis[i].zeichneN(g);
if(kreis[i].FeldArt == 0)
kreis[i].zeichneHgr(g);
}
}
private JPanel getPanel() {
if (panel == null) {
panel = new JPanel();
panel.setBackground(Color.LIGHT_GRAY);
panel.setBounds(984, 0, 300, 961);
panel.setBorder(new MatteBorder(1, 3, 1, 1, (Color) new Color(0, 0, 0)));
}
return panel;
}
}
Und hier die Klasse Feld:
Java:
package GUI;
import java.awt.Color;
import java.awt.Graphics;
public class Feld extends Object {
int durchmesser = 8;
int xPosition, yPosition ;
int FeldArt;
Feld(int xPosition, int yPosition, int durchmesser, int FeldArt){
this.xPosition = xPosition;
this.yPosition = yPosition;
this.durchmesser = durchmesser;
this.FeldArt = FeldArt;
}
public void zeichneN(java.awt.Graphics feld){
feld.fillOval(xPosition, yPosition, durchmesser, durchmesser);
feld.drawOval(xPosition, yPosition, durchmesser, durchmesser);
feld.setColor(Color.WHITE);
}
public void zeichneHgr(java.awt.Graphics feldgr){
feldgr.fillOval(xPosition, yPosition, durchmesser, durchmesser);
feldgr.drawOval(xPosition, yPosition, durchmesser, durchmesser);
feldgr.setColor(Color.GREEN);
}
}
Vielen Dank schon mal
Zuletzt bearbeitet von einem Moderator: