应该不言而喻,但我是一个相当新的人。
我试图制作一个简单的小东西,它会并排显示两个图像,就像窗口允许的那样大。
理论上发生了什么:
我们得到一个imageIcon,在本例中为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,那就太棒了。
答案 0 :(得分:0)
size
在您访问它时尚未确定。
但是,preferredSize
是。如果您添加println(preferredSize)
,您将获得刚刚设置的尺寸。