Я пишу виджет, который выполняет некоторое кэширование, чтобы избежать ненужных вызовов Shape.draw для набора фигур при каждом перерисовке.
Я пытался сделать что-то подобное (код scala):
private val buffer = new BufferedImage(width, height, /* (1) */)
...
override def paintComponent(Graphics2D g) = {
if (hasChanged) {
val bg = buffer.getGraphics.asInstanceOf[Graphics2D]
bg.draw(/* ... */)
buffer.flush
}
g.drawImage(buffer, null /* (2) */, 0, 0)
}
Я не уверен, что положить в (1)
и (2)
.null
для (2), кажется, работает (я не хочу преобразования).Но для (1)
я понятия не имею, какой тип изображения выбрать.Есть ли способ спросить «правильный» во время выполнения?