Вам необходимо переопределить рисование изображения:
JPanel imagePanel = new JPanel() {
private static final long serialVersionUID = 1;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(img.getWidth(), img.getHeight());
}
};
// ...
plateau.add(new GridPane(22,22));
plateau.add(imagePanel);
Вы можете добавить подсказки рендеринга для более плавного масштабирования, хотя это может повлиять на производительность в старых системах, в которых отсутствует ускоренная графика.
JPanel imagePanel = new JPanel() {
private static final long serialVersionUID = 1;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(
RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g2.setRenderingHint(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
g2.setRenderingHint(
RenderingHints.KEY_ALPHA_INTERPOLATION,
RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
}
};