Hallo,
mag mir einer von Euch mal weiterhelfen. Ich habe eine Klasse Board, in der ein Gitter gezeichnet wird. Dieses Gitter möchte ich jetzt einem JPanel im Layoutmanager zuweisen. Wie rufe ich die Zeichnung jetzt auf?
Mein Versuch:
mag mir einer von Euch mal weiterhelfen. Ich habe eine Klasse Board, in der ein Gitter gezeichnet wird. Dieses Gitter möchte ich jetzt einem JPanel im Layoutmanager zuweisen. Wie rufe ich die Zeichnung jetzt auf?
Mein Versuch:
Code:
public class Board extends JPanel {
// Eigenschaften
private String board[][];
// Konstruktor
public Board(String k) {
board = new String[10][10];
for (int r = 0; r < board.length; r++) {
for (int c = 0; c < board[r].length; c++) {
board[r][c] = k;
}
}
}
//Methoden
void showBoard() {
for(int r = 0; r < board.length; r++) {
for(int c = 0; c < board[r].length; c++) {
System.out.print(board[r][c]);
}
System.out.println();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
drawBoard(g2d);
}
private void drawBoard(Graphics g2) {
int r;
int c;
g2.setColor(Color.BLACK);
for (r = 0; r <= board.length; r++) {
g2.drawLine(0, 60 * r, 600, 60 * r);
}
for (c = 0; c < board[r].length; c++) {
g2.drawLine(60 * c, 0, 60 * c, 600);
}
for (r = 0; r < board.length; r++) {
for (c = 0; c < board[r].length; c++) {
g2.setColor(new Color(216, 165, 93));
g2.fillRect(0, 0, 60, 60);
}
}
}
Code:
private void addWidgets() {
getContentPane().setLayout(new BorderLayout(5, 5));
getContentPane().setBackground(Color.WHITE);
getContentPane().add(BorderLayout.PAGE_START, lblHeader);
getContentPane().add(BorderLayout.CENTER, pnlBoard);
pnlBoard.add(board);
}
private void createWidgets() {
pnlBoard = new JPanel();
pnlBoard.setBackground(Color.WHITE);
pnlBoard.setLayout(null);
}