Заполните прямоугольник шаблоном в Java Swing
Я знаю, как заполнить прямоугольник в Swing сплошным цветом:
Graphics2D g2d = bi.createGraphics();
g2d.setColor(Color.RED);
g2d.fillRect(0,0,100,100);
Я знаю, как заполнить его изображением:
BufferedImage bi;
Graphics2D g2d = bi.createGraphics();
g2d.setPaint (new Color(r, g, b));
g2d.fillRect (0, 0, bi.getWidth(), bi.getHeight());
но как заполнить прямоугольник размером 950x950 некоторым плиточным рисунком размером 100x100?
(изображение картины должно быть использовано 100 времен)
2 ответов
вы на правильном пути с setPaint
. Однако вместо того, чтобы установить его в цвет, вы хотите установить его в TexturePaint
как сказал @wchargin, вы можете использовать TexturePaint
. Вот пример:
public class TexturePanel extends JPanel {
private TexturePaint paint;
public TexturePanel(BufferedImage bi) {
super();
this.paint = new TexturePaint(bi, new Rectangle(0, 0, bi.getWidth(), bi.getHeight()));
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(paint);
g2.fill(new Rectangle(0, 0, getWidth(), getHeight()));
}
}