Hallo zusammen,
ich habe leider nicht so viel Ahnung von Java und benötige daher etwas Hilfe.
Ich möchte das angegebene Spielfeld vergrößern. Somit also Felder hinzufügen, die von der gleichen Größe sind. So, dass es insgesamt so ein Feld ergibt:
Es soll also 39 Felder geben wobei sich auf jeder Seite 10 befinden.
Derzeit sieht es so aus:

Es fehlen also einige Felder.
Ich hoffe sehr, dass jemand mir schnell helfen kann ich muss dazu eine Facharbeit am Mittwoch abgeben... und ich verzweifle leider an solchen Sachen.
Vielen vielen Dank!
Hier einmal die Stellen des Codes, an denen die Implementierung erfolgt:
Das Brett und die einzelnen Felder an sich:
Hier die Rotation und und Grafischen Ergänzungen:
ä
ich habe leider nicht so viel Ahnung von Java und benötige daher etwas Hilfe.
Ich möchte das angegebene Spielfeld vergrößern. Somit also Felder hinzufügen, die von der gleichen Größe sind. So, dass es insgesamt so ein Feld ergibt:

Es soll also 39 Felder geben wobei sich auf jeder Seite 10 befinden.
Derzeit sieht es so aus:

Es fehlen also einige Felder.
Ich hoffe sehr, dass jemand mir schnell helfen kann ich muss dazu eine Facharbeit am Mittwoch abgeben... und ich verzweifle leider an solchen Sachen.
Vielen vielen Dank!
Hier einmal die Stellen des Codes, an denen die Implementierung erfolgt:
Das Brett und die einzelnen Felder an sich:
Java:
public Brett(int xCoord, int yCoord, int width, int height) {
setBorder(new LineBorder(new Color(0, 0, 0)));
setBounds(xCoord, yCoord, 612, 612);
this.setLayout(null);
initializeFelder();
}
private void initializeFelder() {
// TODO Auto-generated method stub
String[] felderNamen = {
"Start",
"Badstraße",
"Gemeinschaftsfeld",
"Turmstraße",
"Chaussee Straße",
"Roll once",
"St. Charles Place",
"Chance",
"States Ave",
"Virginia Ave",
"Free Parking",
"St. James Place",
"Community Chest",
"Tennessee Ave",
"New York Ave",
"Squeeze Play",
"Pacific Ave",
"North Carolina Ave",
"Chance",
"Pennsylvania Ave"
};
// Felder oben
Feld feld00 = new Feld(6,6,100,100,felderNamen[0],135);
this.add(feld00);
alleFelder.add(feld00);
unverkaeuflicheFelder.add(feld00);
Feld feld01 = new Feld(106,6,100,100,felderNamen[1],180);
this.add(feld01);
alleFelder.add(feld01);
Feld feld02 = new Feld(206,6,100,100,felderNamen[2],180);
this.add(feld02);
alleFelder.add(feld02);
unverkaeuflicheFelder.add(feld02);
Feld feld03 = new Feld(306,6,100,100,felderNamen[3],180);
this.add(feld03);
alleFelder.add(feld03);
Feld feld04 = new Feld(406,6,100,100,felderNamen[4],180);
this.add(feld04);
alleFelder.add(feld04);
Feld feld05 = new Feld(506,6,100,100,felderNamen[5],-135);
this.add(feld05);
alleFelder.add(feld05);
unverkaeuflicheFelder.add(feld05);
// Felder rechts
Feld feld06 = new Feld(506,106,100,100,felderNamen[6],-90);
this.add(feld06);
alleFelder.add(feld06);
Feld feld07 = new Feld(506,206,100,100,felderNamen[7],-90);
this.add(feld07);
alleFelder.add(feld07);
unverkaeuflicheFelder.add(feld07);
Feld feld08 = new Feld(506,306,100,100,felderNamen[8],-90);
this.add(feld08);
alleFelder.add(feld08);
Feld feld09 = new Feld(506,406,100,100,felderNamen[9],-90);
this.add(feld09);
alleFelder.add(feld09);
Feld feld10 = new Feld(506,506,100,100,felderNamen[10],-45);
this.add(feld10);
alleFelder.add(feld10);
unverkaeuflicheFelder.add(feld10);
// Felder unten
Feld feld11 = new Feld(406,506,100,100,felderNamen[11],0);
this.add(feld11);
alleFelder.add(feld11);
Feld feld12 = new Feld(306,506,100,100,felderNamen[12],0);
this.add(feld12);
alleFelder.add(feld12);
unverkaeuflicheFelder.add(feld12);
Feld feld13 = new Feld(206,506,100,100,felderNamen[13],0);
this.add(feld13);
alleFelder.add(feld13);
Feld feld14 = new Feld(106,506,100,100,felderNamen[14],0);
this.add(feld14);
alleFelder.add(feld14);
Feld feld15 = new Feld(6,506,100,100,felderNamen[15],45);
this.add(feld15);
alleFelder.add(feld15);
unverkaeuflicheFelder.add(feld15);
// Felder links
Feld feld16 = new Feld(6,406,100,100,felderNamen[16],90);
this.add(feld16);
alleFelder.add(feld16);
Feld feld17 = new Feld(6,306,100,100,felderNamen[17],90);
this.add(feld17);
alleFelder.add(feld17);
Feld feld18 = new Feld(6,206,100,100,felderNamen[18],90);
this.add(feld18);
alleFelder.add(feld18);
unverkaeuflicheFelder.add(feld18);
Hier die Rotation und und Grafischen Ergänzungen:
Java:
public Feld(int xCoord, int yCoord, int width, int height, String labelString, int rotationDegrees) {
nummer = felderGesamt;
felderGesamt++;
setBorder(new LineBorder(new Color(0, 0, 0)));
setBounds(xCoord, yCoord, width, height);
name = labelString;
this.setLayout(null);
if(rotationDegrees == 0) {
nameLabel = new JLabel(labelString);
nameLabel.setFont(new Font("Lucida Grande", Font.PLAIN, 9));
nameLabel.setHorizontalAlignment(SwingConstants.CENTER);
nameLabel.setBounds(0,20,this.getWidth(),20);
this.add(nameLabel);
} else {
// rotating a Jlabel: https://www.daniweb.com/programming/software-development/threads/390060/rotate-jlabel-or-image-in-label
nameLabel = new JLabel(labelString) {
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
AffineTransform aT = g2.getTransform();
Shape oldshape = g2.getClip();
double x = getWidth()/2.0;
double y = getHeight()/2.0;
aT.rotate(Math.toRadians(rotationDegrees), x, y);
g2.setTransform(aT);
g2.setClip(oldshape);
super.paintComponent(g);
}
};
if(rotationDegrees == 90) {
nameLabel.setBounds(20, 0, this.getWidth(), this.getHeight());
}
if(rotationDegrees == -90) {
nameLabel.setBounds(-10, 0, this.getWidth(), this.getHeight());
}
if(rotationDegrees == 180) {
nameLabel.setBounds(0, 0, this.getWidth(), this.getHeight());
}
if(rotationDegrees == 135 || rotationDegrees == -135 || rotationDegrees == -45 || rotationDegrees == 45) {
nameLabel.setBounds(0, 0, this.getWidth(), this.getHeight());
}
nameLabel.setFont(new Font("Lucida Grande", Font.PLAIN, 9));
nameLabel.setHorizontalAlignment(SwingConstants.CENTER);
this.add(nameLabel);
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(this.nummer == 1 || this.nummer == 3 || this.nummer == 4) {
g.drawRect(0, this.getHeight()-20, this.getWidth(), 20);
g.setColor(Color.BLUE);
g.fillRect(0, this.getHeight()-20, this.getWidth(), 20);
}
if(this.nummer == 6 || this.nummer == 8 || this.nummer == 9) {
g.drawRect(0, 0, 20, this.getHeight());
g.setColor(Color.PINK);
g.fillRect(0, 0, 20, this.getHeight());
}
if(this.nummer == 11 || this.nummer == 13 || this.nummer == 14) {
g.drawRect(0, 0, this.getWidth(), 20);
g.setColor(Color.ORANGE);
g.fillRect(0, 0, this.getWidth(), 20);
}
if(this.nummer == 16 || this.nummer == 17 || this.nummer == 19) {
g.drawRect(this.getWidth()-20, 0, 20, this.getHeight());
g.setColor(Color.GREEN);
g.fillRect(this.getWidth()-20, 0, 20, this.getHeight());
}
}
ä