私はここで見つけられ、以下で見ることができるコードから始めています:
import swing._
import java.awt.image.BufferedImage
import java.io.File
import javax.imageio.ImageIO
class ImagePanel extends Panel
{
private var _imagePath = ""
private var bufferedImage:BufferedImage = null
def imagePath = _imagePath
def imagePath_=(value:String)
{
_imagePath = value
bufferedImage = ImageIO.read(new File(_imagePath))
}
override def paintComponent(g:Graphics2D) =
{
if (null != bufferedImage) g.drawImage(bufferedImage, 0, 0, null)
}
}
object ImagePanel
{
def apply() = new ImagePanel()
}
使用法:
object ImagePanelDemo extends SimpleSwingApplication
{
def top = new MainFrame {
title = "Image Panel Demo"
contents = new ImagePanel
{
imagePath = ("../testImage.jpg")
}
}
}
これを拡張して、画像パネルにGridPanelの形式を付けたいと思います。画像パネルを画像の背景を持つGridPanelにします。誰かがこれを実装する方法を知っていますか?
私の現在の実装は次のとおりです。
class ImagePanel(rows0: Int, cols0: Int) extends GridPanel(rows0, cols0)
{
private var _imagePath = ""
private var bufferedImage:BufferedImage = null
def imagePath = _imagePath
def imagePath_=(value:String)
{
_imagePath = value
bufferedImage = ImageIO.read(new File(_imagePath))
}
override def paintComponent(g:Graphics2D) =
{
if (null != bufferedImage) g.drawImage(bufferedImage, 0, 0, null)
}
}
object ImagePanel
{
def apply() = new ImagePanel()
}
オブジェクトImagePanelでエラーが発生します。議論が少なすぎます。ここで行と列の新しい引数を正確に追加する方法がわかりません。