# Schachbrett Beschriftung



## Majin (31. Mai 2006)

Hallo Leute

folgendes Problem liegt an:

Ich möchte ein Schachbrett mit Beschriftung der einzelnen Felder im Browser als Java-Applet darstellen.
Das Brett an sich mit Feldern in schwarz-weiß habe ich schon. 
Das Problem ist eher die Beschriftung. Wie kann ich wenn ich Variablen in einer For-Schleife runterlaufen lasse bspw. von 8, in Buchstaben umwandeln?

Ich brauche irgendwie 2 For Schleifen die 2 Variablen enthalten, eine die die Buchstaben darstellt von a-h und eine für die Zahlen 1-8.

Und wie kann ich das ganze dann ausgeben, der g.drawString Befehl klappt irgendwie nur mit Text und nicht mit Variablen...

Vieln Dank für euere Hilfe


----------



## André Uhres (31. Mai 2006)

Majin hat gesagt.:
			
		

> ..Ich möchte ein Schachbrett mit Beschriftung




```
//package paint; 
/* 
* SchachbrettTest1.java 
*/ 
import java.awt.*; 
import javax.swing.*; 
public class SchachbrettTest1 extends JApplet { 
    public void init() { 
        setSize(500, 500); 
        schachBrett = new Schachbrett(); 
        getContentPane().add(schachBrett, BorderLayout.CENTER); 
    } 
    private Schachbrett schachBrett; 
} 
class Schachbrett extends JPanel{ 
    public Schachbrett(){ 
        setLayout(new BorderLayout()); 
        JPanel brett = new JPanel(new GridLayout(8,8)); 
        JPanel feld = null; 
        boolean sw = false; 
        for (int i = 0; i < 8; i++) { 
            for (int j = 0; j < 8; j++) { 
                feld = new JPanel(); 
                sw = !sw; 
                feld.setBackground(sw?WHITE:BLACK); 
                brett.add(feld); 
            } 
            sw = !sw; 
        } 
        add(brett); 
        add(new BrettBeschriftung(VERTICAL), BorderLayout.WEST); 
        add(new BrettBeschriftung(VERTICAL), BorderLayout.EAST); 
        add(new BrettBeschriftung(HORIZONTAL), BorderLayout.SOUTH); 
        add(new BrettBeschriftung(HORIZONTAL), BorderLayout.NORTH); 
    } 
    private final Color WHITE = new Color(255,206,158); 
    private final Color BLACK = new Color(209,139,71); 
    private final boolean HORIZONTAL = true; 
    private final boolean VERTICAL = false; 
    class BrettBeschriftung extends JPanel{ 
        private String[] letters = {"a", "b", "c", "d", "e", "f", "g", "h"}; 
        public BrettBeschriftung(boolean horizontal){ 
            setPreferredSize(new Dimension(20,20)); 
            JLabel schrift = null; 
            if(horizontal){ 
                setLayout(new BorderLayout()); 
                JPanel horizontalPanel = new JPanel(); 
                horizontalPanel.setLayout(new GridLayout(1, 8)); 
                for (int i = 0; i < 8; i++) { 
                    schrift = new JLabel(letters[i]); 
                    schrift.setHorizontalAlignment(JLabel.CENTER); 
                    horizontalPanel.add(schrift); 
                } 
                add(horizontalPanel); 
                JPanel fillWest = new JPanel(); 
                JPanel fillEast = new JPanel(); 
                fillWest.setPreferredSize(new Dimension(20,20)); 
                fillEast.setPreferredSize(new Dimension(20,20)); 
                add(fillWest, BorderLayout.WEST); 
                add(fillEast, BorderLayout.EAST); 
            }else{ 
                setLayout(new GridLayout(8, 1)); 
                for (int i = 8; i > 0; i--) { 
                    schrift = new JLabel(""+i); 
                    schrift.setHorizontalAlignment(JLabel.CENTER); 
                    add(schrift); 
                } 
            } 
        } 
    } 
}
```


----------



## Guest (31. Mai 2006)

Vielen Dank für Ihre Hilfe, aber das ist mir etwas zu kompliziert.
Außerdem fände ich es schöner wenn die Beschriftung innerhalb der Felder platziert ist, mit a8, a7,--h2, h1.
Das Problem dabei finde ich nämlich ist einen Buchstaben zusammen mit einer Zahl darszustellen.


----------



## The_S (31. Mai 2006)

```
public class Schachbrett {
	
	public static void main(String[] args) {
		
		System.out.println("/***********/");
		System.out.println("/Schachbrett/");
		System.out.println("/***********/\n");
		for (int i = 1; i < 9; i++) {
			for (int j = 65; j < 73; j++) {
				System.out.print((char)j + String.valueOf(i) + " | ");
			}
			System.out.println();
			for (int j = 0; j < 8; j++) {
				System.out.print("-----");
			}
			System.out.println();
		}
	}
}
```

Sowas?


----------



## André Uhres (31. Mai 2006)

Anonymous hat gesagt.:
			
		

> Vielen Dank für Ihre Hilfe, aber das ist mir etwas zu kompliziert.
> Außerdem fände ich es schöner wenn die Beschriftung innerhalb der Felder platziert ist, mit a8, a7,--h2, h1.
> Das Problem dabei finde ich nämlich ist einen Buchstaben zusammen mit einer Zahl darszustellen.


So kompliziert ist das auch wieder nicht   . Wenn du Erklärungen dazu haben willst, musst du nur fragen  :wink: 
Meine Darstellung vom Schachbrett ist auch allgemein üblich: http://de.wikipedia.org/wiki/Schach
Eine Beschriftung in den Feldern würde ja zum grossen Teil von den Figuren wieder verdeckt werden.


----------



## Guest (31. Mai 2006)

Das ist schon klar. Ist halt ne Aufgabe die wir von unserem Dozenten bekommen haben, aber ich bin blutiger Anfänger in Java und habe wirklich keine Ahnung wie ich die Buchstaben mit den Zahlen zusammen da hinein bekommen soll.


----------



## André Uhres (31. Mai 2006)

Anonymous hat gesagt.:
			
		

> ..Aufgabe die wir von unserem Dozenten bekommen haben..habe wirklich keine Ahnung ..


 :###


----------

