Тебе понадобится создать подкласс JComponent, который будет отвечать за отрисовку фона.
import javax.swing.*;
import java.awt.*;
class ImagePanel extends JComponent {
private Image image;
public ImagePanel(Image image) {
this.image = image;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
}
}
Загрузи картинку (например, background.jpg) в проект.
Измени код следующим образом:
public static void main(String[] args) {
new GameSnake().go();
}
void go() {
JFrame frame = new JFrame(TITLE_OF_PROGRAM + " : " + START_SNAKE_SIZE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(FILLED_WIDTH * POINT_RADIUS + FILLED_DX, FILLED_HEIGHT * POINT_RADIUS + FILLED_DY);
frame.setLocation(START_LOCATION, START_LOCATION);
frame.setResizable(false);
// Загрузи картинку (например, background.jpg)
Image backgroundImage = Toolkit.getDefaultToolkit().getImage("background.jpg");
ImagePanel imagePanel = new ImagePanel(backgroundImage);
frame.getContentPane().add(BorderLayout.CENTER, imagePanel);
frame.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
snake.setDirection(e.getKeyCode());
// System.out.println(e.getKeyCode());
}
});
frame.setVisible(true);
snake = new Snake(START_SNAKE_X, START_SNAKE_Y, START_SNAKE_SIZE, START_DIRECTION);
food = new Food();
}
new GameSnake().go();
}
void go(){
frame = new JFrame(TITLE_OF_PROGRAM + " : " + START_SNAKE_SIZE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(FILLED_WIDTH * POINT_RADIUS + FILLED_DX, FILLED_HEIGHT * POINT_RADIUS + FILLED_DY);
frame.setLocation(START_LOCATION,START_LOCATION);
frame.setResizable(false);
canvasPanel = new Canvas();
canvasPanel.setBackground(Color.);
frame.getContentPane().add( BorderLayout.CENTER , canvasPanel);
frame.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
snake.setDirection(e.getKeyCode());
// System.out.println(e.getKeyCode());
}
});
frame.setVisible(true);
snake = new Snake(START_SNAKE_X, START_SNAKE_Y, START_SNAKE_SIZE, START_DIRECTION);
food = new Food();