これはおそらく言いようがありますが、私はかなり新しくスイングしています。scala.swing:イメージをウィンドウサイズにスケーリングしようとしましたが、サイズは0を返します
私は、ウィンドウが許す限り、2つの画像を並べて表示する簡単な小さなものを作ろうとしています。理論的には
何が起こっては次のとおりです。
は、我々は、この場合の001.JPGで、イメージアイコンを取得します。
imageIconの幅/高さの比率を把握します。
imageIconを画像に変換します。
私たちは、そのイメージを新しい正しいサイズのイメージに変換します。
画像を画像アイコンに戻します。
このすべてが故障した私は、ウィンドウのサイズを取得するために見つけた唯一の方法はsize
ですが、それが戻って0を保持しているため。これは私が今持っているコードです
:余談として
class UI extends MainFrame {
title = "Matt's window header"
preferredSize = new Dimension(1920, 1080)
var imageIcon = new ImageIcon("001.jpg")
val imgRatio = imageIcon.getIconWidth.toDouble/imageIcon.getIconHeight.toDouble
println(size)
pack()
println(imgRatio)
val image = imageIcon.getImage()
val newimg = image.getScaledInstance(size.width, (size.width * imgRatio.toInt), java.awt.Image.SCALE_SMOOTH)
imageIcon = new ImageIcon(newimg)
contents = new Label {
icon = imageIcon
}
}
誰かが私にだけではなく001.JPGで、異なるイメージをロードする方法についての情報を与えることができれば、それは素晴らしいことです。
ありがとうございます! ウィンドウのサイズを知るにはどうすればよいですか?私はウィンドウが好ましいサイズであると仮定する必要はありません。 – Jones